Project: Gloo (Orchestration & Management / API Gateway)
File: als.proto.sk.md

title: "als.proto" weight: 5 <!-- Code generated by solo-kit. DO NOT EDIT. --> Contains various settings for Envoy's access logging service. See here for more information: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/accesslog/v3/accesslog.proto ```yaml "accessLog": []als.options.gloo.solo.io.AccessLog ``` | Field | Type | Description | | -- | - | -- | | `accessLog` | | | ```yaml "fileSink": .als.options.gloo.solo.io.FileSink "grpcService": .als.options.gloo.solo.io.GrpcService "filter": .als.options.gloo.solo.io.AccessLogFilter ``` | Field | Type | Description | | -- | - | -- | | `fileSink` | | Output access logs to local file. Only one of `fileSink` or `grpcService` can be set. | | `grpcService` | | Send access logs to gRPC service. Only one of `grpcService` or `fileSink` can be set. | | `filter` | | | ```yaml "path": string "stringFormat": string "jsonFormat": .google.protobuf.Struct ``` | Field | Type | Description | | -- | - | -- | | `path` | `string` | the file path to which the file access logging service will sink. | | `stringFormat` | `string` | the format string by which envoy will format the log lines https://www.envoyproxy.io/docs/envoy/v1.14.1/configuration/observability/access_log#config-access-log-format-strings. Only one of `stringFormat` or `jsonFormat` can be set. | | `jsonFormat` | | the format object by which to envoy will emit the logs in a structured way. https://www.envoyproxy.io/docs/envoy/v1.14.1/configuration/observability/access_log#format-dictionaries. Only one of `jsonFormat` or `stringFormat` can be set. | ```yaml "logName": string "staticClusterName": string "additionalRequestHeadersToLog": []string "additionalResponseHeadersToLog": []string "additionalResponseTrailersToLog": []string ``` | Field | Type | Description | | -- | - | -- | | `logName` | `string` | name of log stream. | | `staticClusterName` | `string` | | | `additionalRequestHeadersToLog` | `[]string` | | | `additionalResponseHeadersToLog` | `[]string` | | | `additionalResponseTrailersToLog` | `[]string` | | ```yaml "statusCodeFilter": .als.options.gloo.solo.io.StatusCodeFilter "durationFilter": .als.options.gloo.solo.io.DurationFilter "notHealthCheckFilter": .als.options.gloo.solo.io.NotHealthCheckFilter "traceableFilter": .als.options.gloo.solo.io.TraceableFilter "runtimeFilter": .als.options.gloo.solo.io.RuntimeFilter "andFilter": .als.options.gloo.solo.io.AndFilter "orFilter": .als.options.gloo.solo.io.OrFilter "headerFilter": .als.options.gloo.solo.io.HeaderFilter "responseFlagFilter": .als.options.gloo.solo.io.ResponseFlagFilter "grpcStatusFilter": .als.options.gloo.solo.io.GrpcStatusFilter ``` | Field | Type | Description | | -- | - | -- | | `statusCodeFilter` | | Status code filter. Only one of `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `durationFilter` | | Duration filter. Only one of `durationFilter`, `statusCodeFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `notHealthCheckFilter` | | Not health check filter. Only one of `notHealthCheckFilter`, `statusCodeFilter`, `durationFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `traceableFilter` | | Traceable filter. Only one of `traceableFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `runtimeFilter` | | Runtime filter. Only one of `runtimeFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `andFilter`, `orFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `andFilter` | | And filter. Only one of `andFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `orFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be

| | `orFilter` | | Or filter. Only one of `orFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `headerFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `headerFilter` | | Header filter. Only one of `headerFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `responseFlagFilter`, or `grpcStatusFilter` can be set. | | `responseFlagFilter` | | Response flag filter. Only one of `responseFlagFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `headerFilter`, or `grpcStatusFilter` can be set. | | `grpcStatusFilter` | | gRPC status filter. Only one of `grpcStatusFilter`, `statusCodeFilter`, `durationFilter`, `notHealthCheckFilter`, `traceableFilter`, `runtimeFilter`, `andFilter`, `orFilter`, `headerFilter`, or `responseFlagFilter` can be set. | Filter on an integer comparison. ```yaml "op": .als.options.gloo.solo.io.ComparisonFilter.Op "value": .solo.io.envoy.config.core.v3.RuntimeUInt32 ``` | Field | Type | Description | | -- | - | -- | | `op` | | Comparison operator. | | `value` | | Value to compare against. | | Name | Description | | -- | -- | | `EQ` | = | | `GE` | >= | | `LE` | <= | Filters on HTTP response/status code. ```yaml "comparison": .als.options.gloo.solo.io.ComparisonFilter ``` | Field | Type | Description | | -- | - | -- | | `comparison` | | Comparison. | Filters on total request duration in milliseconds. ```yaml "comparison": .als.options.gloo.solo.io.ComparisonFilter ``` | Field | Type | Description | | -- | - | -- | | `comparison` | | Comparison. | Filters for requests that are not health check requests. A health check request is marked by the health check filter. ```yaml ``` | Field | Type | Description | | -- | - | -- | Filters for requests that are traceable. See the tracing overview for more information on how a request becomes traceable. ```yaml ``` | Field | Type | Description | | -- | - | -- | Filters for random sampling of requests. ```yaml "runtimeKey": string "percentSampled": .solo.io.envoy.type.v3.FractionalPercent "useIndependentRandomness": bool ``` | Field | Type | Description | | -- | - | -- | | `runtimeKey` | `string` | 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. | | `percentSampled` | | The default sampling percentage. If not specified, defaults to 0% with denominator of 100. | | `useIndependentRandomness` | `bool` | By default, sampling pivots on the header :ref:`x-request-id<confighttpconnmanheadersx-request-id>` being present. If :ref:`x-request-id<confighttpconnmanheadersx-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<confighttpconnmanheadersx-request-id>`. If it is missing, or ``useindependentrandomness`` is set to true, the filter will randomly sample based on the runtime key value alone. ``useindependentrandomness`` can be used for logging kill switches within complex nested :ref:`AndFilter <envoyv3apimsgconfig.accesslog.v3.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). | 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. ```yaml "filters": []als.options.gloo.solo.io.AccessLogFilter ``` | Field | Type | Description | | -- | - | -- | | `filters` | | | 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. ```yaml "filters": []als.options.gloo.solo.io.AccessLogFilter ``` | Field | Type | Description | | -- | - | -- | | `filters` | | | Filters requests based on the presence or value of a request header. ```yaml "header": .solo.io.envoy.config.route.v3.HeaderMatcher ``` | Field | Type | Description | | -- | - | -- | | `header` | | Only requests with a header which matches the specified HeaderMatcher will pass the filter check. | Filters requests that received responses with an Envoy response flag set. A list of the response flags can be found in the access log formatter :ref:`documentation<configaccesslogformatresponse_flags>`. ```yaml "flags": []string ``` | Field | Type | Description | | -- | - | -- | | `flags` | `[]string` | Only responses with the any of the flags listed in this field will be logged. This field is optional. If it is not specified, then any response flag will pass the filter check. | Filters gRPC requests based on their response status. If a gRPC status is not provided, the filter will infer the status from the HTTP status code. ```yaml "statuses": []als.options.gloo.solo.io.GrpcStatusFilter.Status "exclude": bool ``` | Field | Type | Description | | -- | - | -- | | `statuses` | | Logs only responses that have any one of the gRPC statuses in this field. | | `exclude` | `bool` | If included and set to true, the filter will instead block all responses with a gRPC status or inferred gRPC status enumerated in statuses, and allow all other responses. | | Name | Description | | -- | -- | | `OK` | | | `CANCELED` | | | `UNKNOWN` | | | `INVALID_ARGUMENT` | | | `DEADLINE_EXCEEDED` | | | `NOT_FOUND` | | | `ALREADY_EXISTS` | | | `PERMISSION_DENIED` | | | `RESOURCE_EXHAUSTED` | | | `FAILED_PRECONDITION` | | | `ABORTED` | | | `OUTOFRANGE` | | | `UNIMPLEMENTED` | | | `INTERNAL` | | | `UNAVAILABLE` | | | `DATA_LOSS` | | | `UNAUTHENTICATED` | | <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5130874.js"></script> <!-- End of HubSpot Embed Code -->