常用存取日誌類型(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_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

duration_filter

(config.accesslog.v3.DurationFilter) 持續時間篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

not_health_check_filter

(config.accesslog.v3.NotHealthCheckFilter) 非健康檢查篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

traceable_filter

(config.accesslog.v3.TraceableFilter) 可追蹤篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

runtime_filter

(config.accesslog.v3.RuntimeFilter) 執行階段篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

and_filter

(config.accesslog.v3.AndFilter) And 篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

or_filter

(config.accesslog.v3.OrFilter) Or 篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

header_filter

(config.accesslog.v3.HeaderFilter) 標頭篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

response_flag_filter

(config.accesslog.v3.ResponseFlagFilter) 回應旗標篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

grpc_status_filter

(config.accesslog.v3.GrpcStatusFilter) gRPC 狀態篩選器。

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

extension_filter

(config.accesslog.v3.ExtensionFilter) 擴展篩選器。

提示

此擴展類別具有下列已知擴展

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

metadata_filter

(config.accesslog.v3.MetadataFilter) 中繼資料篩選器

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

log_type_filter

(config.accesslog.v3.LogTypeFilter) 日誌類型篩選器

必須設定 status_code_filterduration_filternot_health_check_filtertraceable_filterruntime_filterand_filteror_filterheader_filterresponse_flag_filtergrpc_status_filterextension_filtermetadata_filterlog_type_filter 其中之一。

config.accesslog.v3.ComparisonFilter

[config.accesslog.v3.ComparisonFilter proto]

篩選整數比較。

{
  "op": ...,
  "value": {...}
}
op

(config.accesslog.v3.ComparisonFilter.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 可用於在複雜的巢狀 AndFilterOrFilter 區塊中記錄終止開關,從機率角度來看更容易推理(即,設定為 true 將使篩選器在邏輯運算子篩選器中組合時,表現得像一個獨立的隨機變數)。

config.accesslog.v3.AndFilter

[config.accesslog.v3.AndFilter proto]

對 filters 中每個篩選器的結果執行邏輯「and」運算。會依序評估篩選器,如果其中一個篩選器傳回 false,則篩選器會立即傳回 false。

{
  "filters": []
}
filters

(重複 config.accesslog.v3.AccessLogFilter必要)

config.accesslog.v3.OrFilter

[config.accesslog.v3.OrFilter proto]

對每個個別的篩選器結果執行邏輯「或」運算。篩選器會依序評估,如果其中一個篩選器返回 true,則篩選器會立即返回 true。

{
  "filters": []
}
filters

(重複 config.accesslog.v3.AccessLogFilter必要)

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

UNAVAILABLE

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) 依賴於要實例化的篩選器的自訂配置。