als.proto

Package: als.options.gloo.solo.io Types:

Source File: github.com/solo-io/gloo/projects/gloo/api/v1/options/als/als.proto


AccessLoggingService

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

"accessLog": []als.options.gloo.solo.io.AccessLog
Field Type Description
accessLog []als.options.gloo.solo.io.AccessLog

AccessLog

"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 .als.options.gloo.solo.io.FileSink Output access logs to local file. Only one of fileSink or grpcService can be set.
grpcService .als.options.gloo.solo.io.GrpcService Send access logs to gRPC service. Only one of grpcService or fileSink can be set.
filter .als.options.gloo.solo.io.AccessLogFilter

FileSink

"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 .google.protobuf.Struct 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.

GrpcService

"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

AccessLogFilter

"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 .als.options.gloo.solo.io.StatusCodeFilter Status code filter. Only one of statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, andFilter, orFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
durationFilter .als.options.gloo.solo.io.DurationFilter Duration filter. Only one of durationFilter, statusCodeFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, andFilter, orFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
notHealthCheckFilter .als.options.gloo.solo.io.NotHealthCheckFilter Not health check filter. Only one of notHealthCheckFilter, statusCodeFilter, durationFilter, traceableFilter, runtimeFilter, andFilter, orFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
traceableFilter .als.options.gloo.solo.io.TraceableFilter Traceable filter. Only one of traceableFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, runtimeFilter, andFilter, orFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
runtimeFilter .als.options.gloo.solo.io.RuntimeFilter Runtime filter. Only one of runtimeFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, andFilter, orFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
andFilter .als.options.gloo.solo.io.AndFilter And filter. Only one of andFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, orFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
orFilter .als.options.gloo.solo.io.OrFilter Or filter. Only one of orFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, andFilter, headerFilter, responseFlagFilter, or grpcStatusFilter can be set.
headerFilter .als.options.gloo.solo.io.HeaderFilter Header filter. Only one of headerFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, andFilter, orFilter, responseFlagFilter, or grpcStatusFilter can be set.
responseFlagFilter .als.options.gloo.solo.io.ResponseFlagFilter Response flag filter. Only one of responseFlagFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, andFilter, orFilter, headerFilter, or grpcStatusFilter can be set.
grpcStatusFilter .als.options.gloo.solo.io.GrpcStatusFilter gRPC status filter. Only one of grpcStatusFilter, statusCodeFilter, durationFilter, notHealthCheckFilter, traceableFilter, runtimeFilter, andFilter, orFilter, headerFilter, or responseFlagFilter can be set.

ComparisonFilter

Filter on an integer comparison.

"op": .als.options.gloo.solo.io.ComparisonFilter.Op
"value": .solo.io.envoy.config.core.v3.RuntimeUInt32
Field Type Description
op .als.options.gloo.solo.io.ComparisonFilter.Op Comparison operator.
value .solo.io.envoy.config.core.v3.RuntimeUInt32 Value to compare against. Note that the defaultValue field must be defined unless the runtimeKey matches a key that is defined in Envoy’s runtime configuration layer. K8sGateway does not include a key by default. To specify a key-value pair, use the gatewayProxies.NAME.customStaticLayer Helm value or set the key at runtime by using the gateway proxy admin interface.

Op

Name Description
EQ =
GE >=
LE <=

StatusCodeFilter

Filters on HTTP response/status code.

"comparison": .als.options.gloo.solo.io.ComparisonFilter
Field Type Description
comparison .als.options.gloo.solo.io.ComparisonFilter Comparison.

DurationFilter

Filters on total request duration in milliseconds.

"comparison": .als.options.gloo.solo.io.ComparisonFilter
Field Type Description
comparison .als.options.gloo.solo.io.ComparisonFilter Comparison.

NotHealthCheckFilter

Filters for requests that are not health check requests. A health check request is marked by the health check filter.

Field Type Description

TraceableFilter

Filters for requests that are traceable. See the tracing overview for more information on how a request becomes traceable.

Field Type Description

RuntimeFilter

Filters for random sampling of requests.

"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 .solo.io.envoy.type.v3.FractionalPercent The default sampling percentage. If not specified, defaults to 0% with denominator of 100.
useIndependentRandomness bool By default, sampling pivots on the header x-request-id being present. If x-request-id is present, the filter will consistently sample across multiple hosts based on the runtime key value and the value extracted from 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 AndFilter and 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).

AndFilter

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.

"filters": []als.options.gloo.solo.io.AccessLogFilter
Field Type Description
filters []als.options.gloo.solo.io.AccessLogFilter

OrFilter

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.

"filters": []als.options.gloo.solo.io.AccessLogFilter
Field Type Description
filters []als.options.gloo.solo.io.AccessLogFilter

HeaderFilter

Filters requests based on the presence or value of a request header.

"header": .solo.io.envoy.config.route.v3.HeaderMatcher
Field Type Description
header .solo.io.envoy.config.route.v3.HeaderMatcher Only requests with a header which matches the specified HeaderMatcher will pass the filter check.

ResponseFlagFilter

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 documentation.

"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.

GrpcStatusFilter

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.

"statuses": []als.options.gloo.solo.io.GrpcStatusFilter.Status
"exclude": bool
Field Type Description
statuses []als.options.gloo.solo.io.GrpcStatusFilter.Status 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.

Status

Name Description
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