syntax = "proto3"; package envoy.extensions.access_loggers.fluentd.v3; import "envoy/config/core/v3/backoff.proto"; import "envoy/config/core/v3/extension.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/wrappers.proto"; import "udpa/annotations/status.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.extensions.access_loggers.fluentd.v3"; option java_outer_classname = "FluentdProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/access_loggers/fluentd/v3;fluentdv3"; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Fluentd access log] // Configuration for the *envoy.access_loggers.fluentd* :ref:`AccessLog `. // This access log extension will send the emitted access logs over a TCP connection to an upstream that is accepting // the Fluentd Forward Protocol as described in: `Fluentd Forward Protocol Specification // `_. // [#extension: envoy.access_loggers.fluentd] // [#next-free-field: 9] message FluentdAccessLogConfig { message RetryOptions { // The number of times the logger will attempt to connect to the upstream during reconnects. // By default, there is no limit. The logger will attempt to reconnect to the upstream each time // connecting to the upstream failed or the upstream connection had been closed for any reason. google.protobuf.UInt32Value max_connect_attempts = 1; // Sets the backoff strategy. If this value is not set, the default base backoff interval is 500 // milliseconds and the default max backoff interval is 5 seconds (10 times the base interval). config.core.v3.BackoffStrategy backoff_options = 2; } // The upstream cluster to connect to for streaming the Fluentd messages. string cluster = 1 [(validate.rules).string = {min_len: 1}]; // A tag is a string separated with '.' (e.g. log.type) to categorize events. // See: https://github.com/fluent/fluentd/wiki/Forward-Protocol-Specification-v1#message-modes string tag = 2 [(validate.rules).string = {min_len: 1}]; // The prefix to use when emitting :ref:`statistics `. string stat_prefix = 3 [(validate.rules).string = {min_len: 1}]; // Interval for flushing access logs to the TCP 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 = 4 [(validate.rules).duration = {gt {}}]; // Soft size limit in bytes for access log entries buffer. The logger will buffer requests until // this limit it hit, or every time flush interval is elapsed, whichever comes first. When the buffer // limit is hit, the logger will immediately flush the buffer contents. Setting it to zero effectively // disables the batching. Defaults to 16384. google.protobuf.UInt32Value buffer_size_bytes = 5; // A struct that represents the record that is sent for each log entry. // https://github.com/fluent/fluentd/wiki/Forward-Protocol-Specification-v1#entry // Values are rendered as strings, numbers, or boolean values as appropriate. // Nested JSON objects may be produced by some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). // See :ref:`format string` documentation for a specific command operator details. // // .. validated-code-block:: yaml // :type-name: envoy.extensions.access_loggers.fluentd.v3.FluentdAccessLogConfig // // record: // status: "%RESPONSE_CODE%" // message: "%LOCAL_REPLY_BODY%" // // The following msgpack record would be created: // // .. code-block:: json // // { // "status": 500, // "message": "My error message" // } google.protobuf.Struct record = 6 [(validate.rules).message = {required: true}]; // Optional retry, in case upstream connection has failed. If this field is not set, the default values will be applied, // as specified in the :ref:`RetryOptions ` // configuration. RetryOptions retry_options = 7; // Specifies a collection of Formatter plugins that can be called from the access log configuration. // See the formatters extensions documentation for details. // [#extension-category: envoy.formatter] repeated config.core.v3.TypedExtensionConfig formatters = 8; }