.. _envoy_api_file_envoy/config/filter/accesslog/v2/accesslog.proto: Common access log types ======================= .. _envoy_api_msg_config.filter.accesslog.v2.AccessLog: config.filter.accesslog.v2.AccessLog ------------------------------------ `[config.filter.accesslog.v2.AccessLog proto] `_ .. code-block:: json { "name": "...", "filter": "{...}", "config": "{...}" } .. _envoy_api_field_config.filter.accesslog.v2.AccessLog.name: name (`string `_) The name of the access log implementation to instantiate. The name must match a statically registered access log. Current built-in loggers include: #. "envoy.file_access_log" #. "envoy.http_grpc_access_log" .. _envoy_api_field_config.filter.accesslog.v2.AccessLog.filter: filter (:ref:`config.filter.accesslog.v2.AccessLogFilter `) Filter which is used to determine if the access log needs to be written. .. _envoy_api_field_config.filter.accesslog.v2.AccessLog.config: config (`Struct `_) Custom configuration that depends on the access log being instantiated. Built-in configurations include: #. "envoy.file_access_log": :ref:`FileAccessLog ` #. "envoy.http_grpc_access_log": :ref:`HttpGrpcAccessLogConfig ` .. _envoy_api_msg_config.filter.accesslog.v2.AccessLogFilter: config.filter.accesslog.v2.AccessLogFilter ------------------------------------------ `[config.filter.accesslog.v2.AccessLogFilter proto] `_ .. code-block:: json { "status_code_filter": "{...}", "duration_filter": "{...}", "not_health_check_filter": "{...}", "traceable_filter": "{...}", "runtime_filter": "{...}", "and_filter": "{...}", "or_filter": "{...}", "header_filter": "{...}" } .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.status_code_filter: status_code_filter (:ref:`config.filter.accesslog.v2.StatusCodeFilter `) Status code filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.duration_filter: duration_filter (:ref:`config.filter.accesslog.v2.DurationFilter `) Duration filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.not_health_check_filter: not_health_check_filter (:ref:`config.filter.accesslog.v2.NotHealthCheckFilter `) Not health check filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.traceable_filter: traceable_filter (:ref:`config.filter.accesslog.v2.TraceableFilter `) Traceable filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.runtime_filter: runtime_filter (:ref:`config.filter.accesslog.v2.RuntimeFilter `) Runtime filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.and_filter: and_filter (:ref:`config.filter.accesslog.v2.AndFilter `) And filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.or_filter: or_filter (:ref:`config.filter.accesslog.v2.OrFilter `) Or filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_field_config.filter.accesslog.v2.AccessLogFilter.header_filter: header_filter (:ref:`config.filter.accesslog.v2.HeaderFilter `) Header filter. Precisely one of :ref:`status_code_filter `, :ref:`duration_filter `, :ref:`not_health_check_filter `, :ref:`traceable_filter `, :ref:`runtime_filter `, :ref:`and_filter `, :ref:`or_filter `, :ref:`header_filter ` must be set. .. _envoy_api_msg_config.filter.accesslog.v2.ComparisonFilter: config.filter.accesslog.v2.ComparisonFilter ------------------------------------------- `[config.filter.accesslog.v2.ComparisonFilter proto] `_ Filter on an integer comparison. .. code-block:: json { "op": "...", "value": "{...}" } .. _envoy_api_field_config.filter.accesslog.v2.ComparisonFilter.op: op (:ref:`config.filter.accesslog.v2.ComparisonFilter.Op `) Comparison operator. .. _envoy_api_field_config.filter.accesslog.v2.ComparisonFilter.value: value (:ref:`core.RuntimeUInt32 `) Value to compare against. .. _envoy_api_enum_config.filter.accesslog.v2.ComparisonFilter.Op: Enum config.filter.accesslog.v2.ComparisonFilter.Op --------------------------------------------------- `[config.filter.accesslog.v2.ComparisonFilter.Op proto] `_ .. _envoy_api_enum_value_config.filter.accesslog.v2.ComparisonFilter.Op.EQ: EQ *(DEFAULT)* ⁣= .. _envoy_api_enum_value_config.filter.accesslog.v2.ComparisonFilter.Op.GE: GE ⁣>= .. _envoy_api_enum_value_config.filter.accesslog.v2.ComparisonFilter.Op.LE: LE ⁣<= .. _envoy_api_msg_config.filter.accesslog.v2.StatusCodeFilter: config.filter.accesslog.v2.StatusCodeFilter ------------------------------------------- `[config.filter.accesslog.v2.StatusCodeFilter proto] `_ Filters on HTTP response/status code. .. code-block:: json { "comparison": "{...}" } .. _envoy_api_field_config.filter.accesslog.v2.StatusCodeFilter.comparison: comparison (:ref:`config.filter.accesslog.v2.ComparisonFilter `, *REQUIRED*) Comparison. .. _envoy_api_msg_config.filter.accesslog.v2.DurationFilter: config.filter.accesslog.v2.DurationFilter ----------------------------------------- `[config.filter.accesslog.v2.DurationFilter proto] `_ Filters on total request duration in milliseconds. .. code-block:: json { "comparison": "{...}" } .. _envoy_api_field_config.filter.accesslog.v2.DurationFilter.comparison: comparison (:ref:`config.filter.accesslog.v2.ComparisonFilter `, *REQUIRED*) Comparison. .. _envoy_api_msg_config.filter.accesslog.v2.NotHealthCheckFilter: config.filter.accesslog.v2.NotHealthCheckFilter ----------------------------------------------- `[config.filter.accesslog.v2.NotHealthCheckFilter proto] `_ Filters for requests that are not health check requests. A health check request is marked by the health check filter. .. code-block:: json {} .. _envoy_api_msg_config.filter.accesslog.v2.TraceableFilter: config.filter.accesslog.v2.TraceableFilter ------------------------------------------ `[config.filter.accesslog.v2.TraceableFilter proto] `_ Filters for requests that are traceable. See the tracing overview for more information on how a request becomes traceable. .. code-block:: json {} .. _envoy_api_msg_config.filter.accesslog.v2.RuntimeFilter: config.filter.accesslog.v2.RuntimeFilter ---------------------------------------- `[config.filter.accesslog.v2.RuntimeFilter proto] `_ Filters for random sampling of requests. .. code-block:: json { "runtime_key": "...", "percent_sampled": "{...}", "use_independent_randomness": "..." } .. _envoy_api_field_config.filter.accesslog.v2.RuntimeFilter.runtime_key: runtime_key (`string `_, *REQUIRED*) Runtime key to get an optional overridden numerator for use in the *percent_sampled* field. If found in runtime, this value will replace the default numerator. .. _envoy_api_field_config.filter.accesslog.v2.RuntimeFilter.percent_sampled: percent_sampled (:ref:`type.FractionalPercent `) The default sampling percentage. If not specified, defaults to 0% with denominator of 100. .. _envoy_api_field_config.filter.accesslog.v2.RuntimeFilter.use_independent_randomness: use_independent_randomness (`bool `_) By default, sampling pivots on the header :ref:`x-request-id` being present. If :ref:`x-request-id` is present, the filter will consistently sample across multiple hosts based on the runtime key value and the value extracted from :ref:`x-request-id`. If it is missing, or *use_independent_randomness* is set to true, the filter will randomly sample based on the runtime key value alone. *use_independent_randomness* can be used for logging kill switches within complex nested :ref:`AndFilter ` and :ref:`OrFilter ` blocks that are easier to reason about from a probability perspective (i.e., setting to true will cause the filter to behave like an independent random variable when composed within logical operator filters). .. _envoy_api_msg_config.filter.accesslog.v2.AndFilter: config.filter.accesslog.v2.AndFilter ------------------------------------ `[config.filter.accesslog.v2.AndFilter proto] `_ Performs a logical “and” operation on the result of each filter in filters. Filters are evaluated sequentially and if one of them returns false, the filter returns false immediately. .. code-block:: json { "filters": [] } .. _envoy_api_field_config.filter.accesslog.v2.AndFilter.filters: filters (:ref:`config.filter.accesslog.v2.AccessLogFilter `, *REQUIRED*) .. _envoy_api_msg_config.filter.accesslog.v2.OrFilter: config.filter.accesslog.v2.OrFilter ----------------------------------- `[config.filter.accesslog.v2.OrFilter proto] `_ Performs a logical “or” operation on the result of each individual filter. Filters are evaluated sequentially and if one of them returns true, the filter returns true immediately. .. code-block:: json { "filters": [] } .. _envoy_api_field_config.filter.accesslog.v2.OrFilter.filters: filters (:ref:`config.filter.accesslog.v2.AccessLogFilter `, *REQUIRED*) .. _envoy_api_msg_config.filter.accesslog.v2.HeaderFilter: config.filter.accesslog.v2.HeaderFilter --------------------------------------- `[config.filter.accesslog.v2.HeaderFilter proto] `_ Filters requests based on the presence or value of a request header. .. code-block:: json { "header": "{...}" } .. _envoy_api_field_config.filter.accesslog.v2.HeaderFilter.header: header (:ref:`route.HeaderMatcher `, *REQUIRED*) Only requests with a header which matches the specified HeaderMatcher will pass the filter check.