Fluentd access log (proto)

extensions.access_loggers.fluentd.v3.FluentdAccessLogConfig

[extensions.access_loggers.fluentd.v3.FluentdAccessLogConfig proto]

Configuration for the envoy.access_loggers.fluentd 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.

This extension has the qualified name envoy.access_loggers.fluentd

Note

This extension is functional but has not had substantial production burn time, use only with this caveat.

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:

This extension must be configured with one of the following type URLs:

{
  "cluster": ...,
  "tag": ...,
  "stat_prefix": ...,
  "buffer_flush_interval": {...},
  "buffer_size_bytes": {...},
  "record": {...},
  "retry_options": {...},
  "formatters": []
}
cluster

(string, REQUIRED) The upstream cluster to connect to for streaming the Fluentd messages.

tag

(string, REQUIRED) 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

stat_prefix

(string, REQUIRED) The prefix to use when emitting statistics.

buffer_flush_interval

(Duration) 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.

buffer_size_bytes

(UInt32Value) 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.

record

(Struct, REQUIRED) 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 format string documentation for a specific command operator details.

record:
  status: "%RESPONSE_CODE%"
  message: "%LOCAL_REPLY_BODY%"

The following msgpack record would be created:

{
  "status": 500,
  "message": "My error message"
}
retry_options

(extensions.access_loggers.fluentd.v3.FluentdAccessLogConfig.RetryOptions) Optional retry, in case upstream connection has failed. If this field is not set, the default values will be applied, as specified in the RetryOptions configuration.

formatters

(repeated config.core.v3.TypedExtensionConfig) Specifies a collection of Formatter plugins that can be called from the access log configuration. See the formatters extensions documentation for details.

Tip

This extension category has the following known extensions:

extensions.access_loggers.fluentd.v3.FluentdAccessLogConfig.RetryOptions

[extensions.access_loggers.fluentd.v3.FluentdAccessLogConfig.RetryOptions proto]

{
  "max_connect_attempts": {...},
  "backoff_options": {...}
}
max_connect_attempts

(UInt32Value) 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.

backoff_options

(config.core.v3.BackoffStrategy) 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).