...

Text file src/github.com/datawire/ambassador/v2/api/envoy/extensions/access_loggers/grpc/v3/als.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/extensions/access_loggers/grpc/v3

     1syntax = "proto3";
     2
     3package envoy.extensions.access_loggers.grpc.v3;
     4
     5import "envoy/config/core/v3/config_source.proto";
     6import "envoy/config/core/v3/grpc_service.proto";
     7
     8import "google/protobuf/duration.proto";
     9import "google/protobuf/wrappers.proto";
    10
    11import "udpa/annotations/status.proto";
    12import "udpa/annotations/versioning.proto";
    13import "validate/validate.proto";
    14
    15option java_package = "io.envoyproxy.envoy.extensions.access_loggers.grpc.v3";
    16option java_outer_classname = "AlsProto";
    17option java_multiple_files = true;
    18option (udpa.annotations.file_status).package_version_status = ACTIVE;
    19
    20// [#protodoc-title: gRPC Access Log Service (ALS)]
    21
    22// Configuration for the built-in *envoy.access_loggers.http_grpc*
    23// :ref:`AccessLog <envoy_api_msg_config.accesslog.v3.AccessLog>`. This configuration will
    24// populate :ref:`StreamAccessLogsMessage.http_logs
    25// <envoy_api_field_service.accesslog.v3.StreamAccessLogsMessage.http_logs>`.
    26// [#extension: envoy.access_loggers.http_grpc]
    27message HttpGrpcAccessLogConfig {
    28  option (udpa.annotations.versioning).previous_message_type =
    29      "envoy.config.accesslog.v2.HttpGrpcAccessLogConfig";
    30
    31  CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
    32
    33  // Additional request headers to log in :ref:`HTTPRequestProperties.request_headers
    34  // <envoy_api_field_data.accesslog.v3.HTTPRequestProperties.request_headers>`.
    35  repeated string additional_request_headers_to_log = 2;
    36
    37  // Additional response headers to log in :ref:`HTTPResponseProperties.response_headers
    38  // <envoy_api_field_data.accesslog.v3.HTTPResponseProperties.response_headers>`.
    39  repeated string additional_response_headers_to_log = 3;
    40
    41  // Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers
    42  // <envoy_api_field_data.accesslog.v3.HTTPResponseProperties.response_trailers>`.
    43  repeated string additional_response_trailers_to_log = 4;
    44}
    45
    46// Configuration for the built-in *envoy.access_loggers.tcp_grpc* type. This configuration will
    47// populate *StreamAccessLogsMessage.tcp_logs*.
    48// [#extension: envoy.access_loggers.tcp_grpc]
    49message TcpGrpcAccessLogConfig {
    50  option (udpa.annotations.versioning).previous_message_type =
    51      "envoy.config.accesslog.v2.TcpGrpcAccessLogConfig";
    52
    53  CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
    54}
    55
    56// Common configuration for gRPC access logs.
    57// [#next-free-field: 7]
    58message CommonGrpcAccessLogConfig {
    59  option (udpa.annotations.versioning).previous_message_type =
    60      "envoy.config.accesslog.v2.CommonGrpcAccessLogConfig";
    61
    62  // The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier
    63  // <envoy_api_msg_service.accesslog.v3.StreamAccessLogsMessage.Identifier>`. This allows the
    64  // access log server to differentiate between different access logs coming from the same Envoy.
    65  string log_name = 1 [(validate.rules).string = {min_len: 1}];
    66
    67  // The gRPC service for the access log service.
    68  config.core.v3.GrpcService grpc_service = 2 [(validate.rules).message = {required: true}];
    69
    70  // API version for access logs service transport protocol. This describes the access logs service
    71  // gRPC endpoint and version of messages used on the wire.
    72  config.core.v3.ApiVersion transport_api_version = 6
    73      [(validate.rules).enum = {defined_only: true}];
    74
    75  // Interval for flushing access logs to the gRPC stream. Logger will flush requests every time
    76  // this interval is elapsed, or when batch size limit is hit, whichever comes first. Defaults to
    77  // 1 second.
    78  google.protobuf.Duration buffer_flush_interval = 3 [(validate.rules).duration = {gt {}}];
    79
    80  // Soft size limit in bytes for access log entries buffer. Logger will buffer requests until
    81  // this limit it hit, or every time flush interval is elapsed, whichever comes first. Setting it
    82  // to zero effectively disables the batching. Defaults to 16384.
    83  google.protobuf.UInt32Value buffer_size_bytes = 4;
    84
    85  // Additional filter state objects to log in :ref:`filter_state_objects
    86  // <envoy_api_field_data.accesslog.v3.AccessLogCommon.filter_state_objects>`.
    87  // Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
    88  repeated string filter_state_objects_to_log = 5;
    89}

View as plain text