常用存取日誌類型(proto)
config.accesslog.v3.AccessLog
[config.accesslog.v3.AccessLog proto]
{
"name": ...,
"filter": {...},
"typed_config": {...}
}
- name
(字串) 存取日誌擴展組態的名稱。
- filter
(config.accesslog.v3.AccessLogFilter) 用於決定是否需要寫入存取日誌的篩選器。
- typed_config
(Any) 必須根據正在初始化的存取日誌記錄器擴展設定的自訂組態。
config.accesslog.v3.AccessLogFilter
[config.accesslog.v3.AccessLogFilter proto]
{
"status_code_filter": {...},
"duration_filter": {...},
"not_health_check_filter": {...},
"traceable_filter": {...},
"runtime_filter": {...},
"and_filter": {...},
"or_filter": {...},
"header_filter": {...},
"response_flag_filter": {...},
"grpc_status_filter": {...},
"extension_filter": {...},
"metadata_filter": {...},
"log_type_filter": {...}
}
- status_code_filter
(config.accesslog.v3.StatusCodeFilter) 狀態碼篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- duration_filter
(config.accesslog.v3.DurationFilter) 持續時間篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- not_health_check_filter
(config.accesslog.v3.NotHealthCheckFilter) 非健康檢查篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- traceable_filter
(config.accesslog.v3.TraceableFilter) 可追蹤篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- runtime_filter
(config.accesslog.v3.RuntimeFilter) 執行階段篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- and_filter
(config.accesslog.v3.AndFilter) And 篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- or_filter
(config.accesslog.v3.OrFilter) Or 篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- header_filter
(config.accesslog.v3.HeaderFilter) 標頭篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- response_flag_filter
(config.accesslog.v3.ResponseFlagFilter) 回應旗標篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- grpc_status_filter
(config.accesslog.v3.GrpcStatusFilter) gRPC 狀態篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
- extension_filter
(config.accesslog.v3.ExtensionFilter) 擴展篩選器。
必須設定 status_code_filter、duration_filter、not_health_check_filter、traceable_filter、runtime_filter、and_filter、or_filter、header_filter、response_flag_filter、grpc_status_filter、extension_filter、metadata_filter 或 log_type_filter 其中之一。
config.accesslog.v3.ComparisonFilter
[config.accesslog.v3.ComparisonFilter proto]
篩選整數比較。
{
"op": ...,
"value": {...}
}
- op
- value
(config.core.v3.RuntimeUInt32, 必要) 要與之比較的數值。
列舉 config.accesslog.v3.ComparisonFilter.Op
[config.accesslog.v3.ComparisonFilter.Op proto]
- EQ
(預設) =
- GE
>=
- LE
<=
config.accesslog.v3.StatusCodeFilter
[config.accesslog.v3.StatusCodeFilter proto]
根據 HTTP 回應/狀態碼進行篩選。
{
"comparison": {...}
}
- comparison
(config.accesslog.v3.ComparisonFilter, 必要) 比較。
config.accesslog.v3.DurationFilter
[config.accesslog.v3.DurationFilter proto]
根據請求或串流的持續時間(以毫秒為單位)進行篩選。對於串流結束存取日誌,將使用串流的總持續時間。對於週期性存取日誌,將使用記錄日誌時串流的持續時間。
{
"comparison": {...}
}
- comparison
(config.accesslog.v3.ComparisonFilter, 必要) 比較。
config.accesslog.v3.NotHealthCheckFilter
[config.accesslog.v3.NotHealthCheckFilter proto]
篩選不是健康檢查請求的請求。健康檢查請求由健康檢查篩選器標記。
config.accesslog.v3.TraceableFilter
[config.accesslog.v3.TraceableFilter proto]
篩選可追蹤的請求。請參閱追蹤概觀,以了解有關請求如何變得可追蹤的更多資訊。
config.accesslog.v3.RuntimeFilter
[config.accesslog.v3.RuntimeFilter proto]
篩選請求的隨機抽樣。
{
"runtime_key": ...,
"percent_sampled": {...},
"use_independent_randomness": ...
}
- runtime_key
(字串, 必要) 執行階段金鑰,用於取得
percent_sampled
欄位中使用的可選覆寫分子。如果在執行階段找到,此值將取代預設分子。
- percent_sampled
(type.v3.FractionalPercent) 預設取樣百分比。如果未指定,則預設值為 0%,分母為 100。
- use_independent_randomness
(布林值) 依預設,取樣會以存在標頭 x-request-id 為中心。如果存在 x-request-id,則篩選器會根據執行階段金鑰值和從 x-request-id 提取的值,在多個主機之間一致地取樣。如果缺少它,或將
use_independent_randomness
設定為 true,則篩選器會僅根據執行階段金鑰值隨機取樣。use_independent_randomness
可用於在複雜的巢狀 AndFilter 和 OrFilter 區塊中記錄終止開關,從機率角度來看更容易推理(即,設定為 true 將使篩選器在邏輯運算子篩選器中組合時,表現得像一個獨立的隨機變數)。
config.accesslog.v3.AndFilter
[config.accesslog.v3.AndFilter proto]
對 filters 中每個篩選器的結果執行邏輯「and」運算。會依序評估篩選器,如果其中一個篩選器傳回 false,則篩選器會立即傳回 false。
{
"filters": []
}
- filters
config.accesslog.v3.OrFilter
[config.accesslog.v3.OrFilter proto]
對每個個別的篩選器結果執行邏輯「或」運算。篩選器會依序評估,如果其中一個篩選器返回 true,則篩選器會立即返回 true。
{
"filters": []
}
- filters
config.accesslog.v3.HeaderFilter
[config.accesslog.v3.HeaderFilter proto]
根據請求標頭是否存在或其值來篩選請求。
{
"header": {...}
}
- header
(config.route.v3.HeaderMatcher,必要) 只有具有符合指定 HeaderMatcher 的標頭的請求才會通過篩選器檢查。
config.accesslog.v3.ResponseFlagFilter
[config.accesslog.v3.ResponseFlagFilter proto]
篩選收到設定了 Envoy 回應標誌的回應的請求。回應標誌的清單可以在存取日誌格式化器的文件中找到。
{
"flags": []
}
- flags
(重複 string) 只有具有此欄位中列出的任何標誌的回應才會被記錄。此欄位為選用。如果未指定,則任何回應標誌都將通過篩選器檢查。
config.accesslog.v3.GrpcStatusFilter
[config.accesslog.v3.GrpcStatusFilter proto]
根據 gRPC 請求的回應狀態篩選 gRPC 請求。如果未提供 gRPC 狀態,篩選器將從 HTTP 狀態碼推斷狀態。
{
"statuses": [],
"exclude": ...
}
- statuses
(重複 config.accesslog.v3.GrpcStatusFilter.Status) 僅記錄具有此欄位中任何一個 gRPC 狀態的回應。
- exclude
(bool) 如果包含並設定為 true,則篩選器會改為阻止所有具有 statuses 中枚舉的 gRPC 狀態或推斷的 gRPC 狀態的回應,並允許所有其他回應。
列舉 config.accesslog.v3.GrpcStatusFilter.Status
[config.accesslog.v3.GrpcStatusFilter.Status proto]
- OK
(預設)
- CANCELED
- UNKNOWN
- INVALID_ARGUMENT
- DEADLINE_EXCEEDED
- NOT_FOUND
- ALREADY_EXISTS
- PERMISSION_DENIED
- RESOURCE_EXHAUSTED
- FAILED_PRECONDITION
- ABORTED
- OUT_OF_RANGE
- UNIMPLEMENTED
- INTERNAL
- DATA_LOSS
- UNAUTHENTICATED
config.accesslog.v3.MetadataFilter
[config.accesslog.v3.MetadataFilter proto]
根據匹配的動態元數據進行篩選。如果匹配器路徑和鍵對應於動態元數據中的現有鍵,則僅當匹配器值等於元數據值時,才會記錄請求。如果匹配器路徑和鍵不對應於動態元數據中的現有鍵,則僅當 match_if_key_not_found 為「true」或未設定時,才會記錄請求。
{
"matcher": {...},
"match_if_key_not_found": {...}
}
- matcher
(type.matcher.v3.MetadataMatcher) 用於檢查指定值的元數據的匹配器。例如,要匹配 access_log_hint 元數據,請將篩選器設定為「envoy.common」,將路徑設定為「access_log_hint」,並將值設定為「true」。
- match_if_key_not_found
(BoolValue) 如果鍵不存在於動態元數據中的預設結果:如果未設定或為 true,則記錄;如果為 false,則不記錄。
config.accesslog.v3.LogTypeFilter
[config.accesslog.v3.LogTypeFilter proto]
根據存取日誌類型進行篩選。
{
"types": [],
"exclude": ...
}
- types
(重複 data.accesslog.v3.AccessLogType) 僅記錄其類型為此欄位中定義的其中一種的記錄。
- exclude
(bool) 如果此欄位設定為 true,則篩選器會改為阻止所有 types 欄位中具有存取日誌類型的記錄,並允許所有其他記錄。
config.accesslog.v3.ExtensionFilter
[config.accesslog.v3.ExtensionFilter proto]
擴充篩選器在執行時靜態註冊。
{
"name": ...,
"typed_config": {...}
}
- name
(string) 要實例化的篩選器實作的名稱。該名稱必須與靜態註冊的篩選器匹配。
- typed_config
(Any) 依賴於要實例化的篩選器的自訂配置。