als.proto 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. syntax = "proto3";
  2. package envoy.config.accesslog.v2;
  3. import "envoy/api/v2/core/grpc_service.proto";
  4. import "google/protobuf/duration.proto";
  5. import "google/protobuf/wrappers.proto";
  6. import "udpa/annotations/migrate.proto";
  7. import "udpa/annotations/status.proto";
  8. import "validate/validate.proto";
  9. option java_package = "io.envoyproxy.envoy.config.accesslog.v2";
  10. option java_outer_classname = "AlsProto";
  11. option java_multiple_files = true;
  12. option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/accesslog/v2;accesslogv2";
  13. option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.access_loggers.grpc.v3";
  14. option (udpa.annotations.file_status).package_version_status = FROZEN;
  15. // [#protodoc-title: gRPC Access Log Service (ALS)]
  16. // Configuration for the built-in *envoy.access_loggers.http_grpc*
  17. // :ref:`AccessLog <envoy_api_msg_config.filter.accesslog.v2.AccessLog>`. This configuration will
  18. // populate :ref:`StreamAccessLogsMessage.http_logs
  19. // <envoy_api_field_service.accesslog.v2.StreamAccessLogsMessage.http_logs>`.
  20. // [#extension: envoy.access_loggers.http_grpc]
  21. message HttpGrpcAccessLogConfig {
  22. CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
  23. // Additional request headers to log in :ref:`HTTPRequestProperties.request_headers
  24. // <envoy_api_field_data.accesslog.v2.HTTPRequestProperties.request_headers>`.
  25. repeated string additional_request_headers_to_log = 2;
  26. // Additional response headers to log in :ref:`HTTPResponseProperties.response_headers
  27. // <envoy_api_field_data.accesslog.v2.HTTPResponseProperties.response_headers>`.
  28. repeated string additional_response_headers_to_log = 3;
  29. // Additional response trailers to log in :ref:`HTTPResponseProperties.response_trailers
  30. // <envoy_api_field_data.accesslog.v2.HTTPResponseProperties.response_trailers>`.
  31. repeated string additional_response_trailers_to_log = 4;
  32. }
  33. // Configuration for the built-in *envoy.access_loggers.tcp_grpc* type. This configuration will
  34. // populate *StreamAccessLogsMessage.tcp_logs*.
  35. // [#extension: envoy.access_loggers.tcp_grpc]
  36. message TcpGrpcAccessLogConfig {
  37. CommonGrpcAccessLogConfig common_config = 1 [(validate.rules).message = {required: true}];
  38. }
  39. // Common configuration for gRPC access logs.
  40. // [#next-free-field: 6]
  41. message CommonGrpcAccessLogConfig {
  42. // The friendly name of the access log to be returned in :ref:`StreamAccessLogsMessage.Identifier
  43. // <envoy_api_msg_service.accesslog.v2.StreamAccessLogsMessage.Identifier>`. This allows the
  44. // access log server to differentiate between different access logs coming from the same Envoy.
  45. string log_name = 1 [(validate.rules).string = {min_bytes: 1}];
  46. // The gRPC service for the access log service.
  47. api.v2.core.GrpcService grpc_service = 2 [(validate.rules).message = {required: true}];
  48. // Interval for flushing access logs to the gRPC stream. Logger will flush requests every time
  49. // this interval is elapsed, or when batch size limit is hit, whichever comes first. Defaults to
  50. // 1 second.
  51. google.protobuf.Duration buffer_flush_interval = 3 [(validate.rules).duration = {gt {}}];
  52. // Soft size limit in bytes for access log entries buffer. Logger will buffer requests until
  53. // this limit it hit, or every time flush interval is elapsed, whichever comes first. Setting it
  54. // to zero effectively disables the batching. Defaults to 16384.
  55. google.protobuf.UInt32Value buffer_size_bytes = 4;
  56. // Additional filter state objects to log in :ref:`filter_state_objects
  57. // <envoy_api_field_data.accesslog.v2.AccessLogCommon.filter_state_objects>`.
  58. // Logger will call `FilterState::Object::serializeAsProto` to serialize the filter state object.
  59. repeated string filter_state_objects_to_log = 5;
  60. }