gRPC Access Log Service (ALS)

This documentation is for the Envoy v3 API.

As of Envoy v1.18 the v2 API has been removed and is no longer supported.

If you are upgrading from v2 API config you may wish to view the v2 API documentation:

config/accesslog/v2/als.proto

extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig

[extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig proto]

Configuration for the built-in envoy.access_loggers.http_grpc AccessLog. This configuration will populate StreamAccessLogsMessage.http_logs.

This extension may be referenced by the qualified name envoy.access_loggers.http_grpc

Note

This extension is intended to be robust against untrusted downstream traffic. It assumes that the upstream is trusted.

Tip

This extension extends and can be used with the following extension category:

  1. {
  2. "common_config": "{...}",
  3. "additional_request_headers_to_log": [],
  4. "additional_response_headers_to_log": [],
  5. "additional_response_trailers_to_log": []
  6. }

common_config

(extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig, REQUIRED)

additional_request_headers_to_log

(repeated string) Additional request headers to log in HTTPRequestProperties.request_headers.

additional_response_headers_to_log

(repeated string) Additional response headers to log in HTTPResponseProperties.response_headers.

additional_response_trailers_to_log

(repeated string) Additional response trailers to log in HTTPResponseProperties.response_trailers.

extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig

[extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig proto]

Configuration for the built-in envoy.access_loggers.tcp_grpc type. This configuration will populate StreamAccessLogsMessage.tcp_logs.

This extension may be referenced by the qualified name envoy.access_loggers.tcp_grpc

Note

This extension is intended to be robust against untrusted downstream traffic. It assumes that the upstream is trusted.

Tip

This extension extends and can be used with the following extension category:

  1. {
  2. "common_config": "{...}"
  3. }

common_config

(extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig, REQUIRED)

extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig

[extensions.access_loggers.grpc.v3.CommonGrpcAccessLogConfig proto]

Common configuration for gRPC access logs.

  1. {
  2. "log_name": "...",
  3. "grpc_service": "{...}",
  4. "transport_api_version": "...",
  5. "buffer_flush_interval": "{...}",
  6. "buffer_size_bytes": "{...}",
  7. "filter_state_objects_to_log": []
  8. }

log_name

(string, REQUIRED) The friendly name of the access log to be returned in StreamAccessLogsMessage.Identifier. This allows the access log server to differentiate between different access logs coming from the same Envoy.

grpc_service

(config.core.v3.GrpcService, REQUIRED) The gRPC service for the access log service.

transport_api_version

(config.core.v3.ApiVersion) API version for access logs service transport protocol. This describes the access logs service gRPC endpoint and version of messages used on the wire.

buffer_flush_interval

(Duration) Interval for flushing access logs to the gRPC stream. Logger will flush requests every time this interval is elapsed, or when batch size limit is hit, whichever comes first. Defaults to 1 second.

buffer_size_bytes

(UInt32Value) Soft size limit in bytes for access log entries buffer. Logger will buffer requests until this limit it hit, or every time flush interval is elapsed, whichever comes first. Setting it to zero effectively disables the batching. Defaults to 16384.

filter_state_objects_to_log

(repeated string) Additional filter state objects to log in filter_state_objects. Logger will call FilterState::Object::serializeAsProto to serialize the filter state object.