|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package envoy.config.accesslog.v3alpha;
|
|
|
|
|
|
|
|
option java_outer_classname = "AlsProto";
|
|
|
|
option java_multiple_files = true;
|
|
|
|
option java_package = "io.envoyproxy.envoy.config.accesslog.v3alpha";
|
|
|
|
|
|
|
|
import "envoy/api/v3alpha/core/grpc_service.proto";
|
|
|
|
|
|
|
|
import "google/protobuf/duration.proto";
|
|
|
|
import "google/protobuf/wrappers.proto";
|
|
|
|
|
|
|
|
import "validate/validate.proto";
|
|
|
|
|
|
|
|
// [#protodoc-title: gRPC Access Log Service (ALS)]
|
|
|
|
|
|
|
|
// Configuration for the built-in *envoy.http_grpc_access_log*
|
|
|
|
// :ref:`AccessLog <envoy_api_msg_config.filter.accesslog.v3alpha.AccessLog>`. This configuration
|
|
|
|
// will populate :ref:`StreamAccessLogsMessage.http_logs
|
|
|
|
// <envoy_api_field_service.accesslog.v3alpha.StreamAccessLogsMessage.http_logs>`.
|
|
|
|
message HttpGrpcAccessLogConfig {
|
|
|
|
CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
|
|
|
|
|
|
|
|
// Additional request headers to log in :ref:`HTTPRequestProperties.request_headers
|
|
|
|
// <envoy_api_field_data.accesslog.v3alpha.HTTPRequestProperties.request_headers>`.
|
|
|
|
repeated string additional_request_headers_to_log = 2;
|
|
|
|
|
|
|
|
// Additional response headers to log in :ref:`HTTPResponseProperties.response_headers
|
|
|
|
// <envoy_api_field_data.accesslog.v3alpha.HTTPResponseProperties.response_headers>`.
|
|
|
|
repeated string additional_response_headers_to_log = 3;
|
|
|
|
|
|
|
|
// Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers
|
|
|
|
// <envoy_api_field_data.accesslog.v3alpha.HTTPResponseProperties.response_trailers>`.
|
|
|
|
repeated string additional_response_trailers_to_log = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Configuration for the built-in *envoy.tcp_grpc_access_log* type. This configuration will
|
|
|
|
// populate *StreamAccessLogsMessage.tcp_logs*.
|
|
|
|
message TcpGrpcAccessLogConfig {
|
|
|
|
CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Common configuration for gRPC access logs.
|
|
|
|
message CommonGrpcAccessLogConfig {
|
|
|
|
// The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier
|
|
|
|
// <envoy_api_msg_service.accesslog.v3alpha.StreamAccessLogsMessage.Identifier>`. This allows the
|
|
|
|
// access log server to differentiate between different access logs coming from the same Envoy.
|
|
|
|
string log_name = 1 [(validate.rules).string = {min_bytes: 1}];
|
|
|
|
|
|
|
|
// The gRPC service for the access log service.
|
|
|
|
api.v3alpha.core.GrpcService grpc_service = 2 [(validate.rules).message = {required: true}];
|
|
|
|
|
|
|
|
// 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.
|
|
|
|
google.protobuf.Duration buffer_flush_interval = 3 [(validate.rules).duration = {gt {}}];
|
|
|
|
|
|
|
|
// 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.
|
|
|
|
google.protobuf.UInt32Value buffer_size_bytes = 4;
|
|
|
|
}
|