通用访问日志类型 (proto)

config.accesslog.v3.AccessLog

[config.accesslog.v3.AccessLog proto]

{
  "name": ...,
  "filter": {...},
  "typed_config": {...}
}
name

(string) 访问日志扩展配置的名称。

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) 并且过滤器。

必须设置 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) 或过滤器。

必须设置 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, REQUIRED) 要比较的值。

Enum config.accesslog.v3.ComparisonFilter.Op

[config.accesslog.v3.ComparisonFilter.Op proto]

EQ

(DEFAULT) ⁣=

GE

⁣>=

LE

⁣<=

config.accesslog.v3.StatusCodeFilter

[config.accesslog.v3.StatusCodeFilter proto]

根据 HTTP 响应/状态码进行过滤。

{
  "comparison": {...}
}
comparison

(config.accesslog.v3.ComparisonFilter, REQUIRED) 比较。

config.accesslog.v3.DurationFilter

[config.accesslog.v3.DurationFilter proto]

根据请求或流的持续时间(以毫秒为单位)进行过滤。对于流结束的访问日志,将使用流的总持续时间。对于 周期性访问日志,将使用记录日志时流的持续时间。

{
  "comparison": {...}
}
comparison

(config.accesslog.v3.ComparisonFilter, REQUIRED) 比较。

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

(string, REQUIRED) 运行时键,用于获取可选的覆盖分子,用于 percent_sampled 字段。如果在运行时找到,此值将替换默认分子。

percent_sampled

(type.v3.FractionalPercent) 默认采样百分比。如果未指定,则默认为 0%,分母为 100。

use_independent_randomness

(bool) 默认情况下,采样以标头 x-request-id 是否存在为枢纽。如果 x-request-id 存在,则过滤器将根据运行时键值和从 x-request-id 中提取的值,在多个主机上始终如一地进行采样。如果它不存在,或 use_independent_randomness 设置为 true,则过滤器将仅根据运行时键值进行随机采样。use_independent_randomness 可用于在复杂的嵌套 AndFilterOrFilter 块中进行日志记录 kill 开关,这些块从概率的角度更容易理解(即,设置为 true 将导致过滤器在逻辑运算符过滤器中组合时表现得像一个独立的随机变量)。

config.accesslog.v3.AndFilter

[config.accesslog.v3.AndFilter proto]

对过滤器中每个过滤器的结果执行逻辑“与”运算。过滤器按顺序进行评估,如果其中一个返回 false,则过滤器立即返回 false。

{
  "filters": []
}
filters

(repeated config.accesslog.v3.AccessLogFilter, REQUIRED)

config.accesslog.v3.OrFilter

[config.accesslog.v3.OrFilter proto]

对每个单独过滤器的结果执行逻辑“或”运算。过滤器按顺序进行评估,如果其中一个返回 true,则过滤器立即返回 true。

{
  "filters": []
}
filters

(repeated config.accesslog.v3.AccessLogFilter, REQUIRED)

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 状态,过滤器将从 HTTP 状态代码推断状态。

{
  "statuses": [],
  "exclude": ...
}
statuses

(重复 config.accesslog.v3.GrpcStatusFilter.Status) 仅记录具有此字段中任何一个 gRPC 状态的响应。

exclude

(bool) 如果包含且设置为 true,过滤器将改为阻止所有具有 gRPC 状态或推断的 gRPC 状态枚举在状态中的响应,并允许所有其他响应。

Enum 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) 用于检查指定值的元数据的匹配器。例如,要匹配访问日志提示元数据,请将过滤器设置为“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,过滤器将改为阻止类型在类型字段中的所有记录,并允许所有其他记录。

config.accesslog.v3.ExtensionFilter

[config.accesslog.v3.ExtensionFilter proto]

扩展过滤器在运行时静态注册。

{
  "name": ...,
  "typed_config": {...}
}
name

(string) 要实例化的过滤器实现的名称。名称必须与静态注册的过滤器匹配。

typed_config

(Any) 取决于要实例化的过滤器的自定义配置。