als.proto
Package: als.options.gloo.solo.io
Types:
- AccessLoggingService
- AccessLog
- FileSink
- GrpcService
- AccessLogFilter
- ComparisonFilter
- Op
- StatusCodeFilter
- DurationFilter
- NotHealthCheckFilter
- TraceableFilter
- RuntimeFilter
- AndFilter
- OrFilter
- HeaderFilter
- ResponseFlagFilter
- GrpcStatusFilter
- Status
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 |