Parameters
See plugin common configurations for configuration options available to all plugins.
endpoint_addr
Deprecated. Use
endpoint_addrsinstead. ClickHouse endpoint. Configure eitherendpoint_addrorendpoint_addrs.endpoint_addrs
ClickHouse endpoints. Configure either
endpoint_addrsor the deprecatedendpoint_addr.database
Name of the database to store the logs.
logtable
Name of the table that stores the logs.
user
ClickHouse username.
From APISIX 3.16.0, supports referencing values from environment variables using the
$ENV://prefix or from a secret manager using the$secret://prefix. For more information, see secrets.password
ClickHouse password.
The value is encrypted with AES before being stored in etcd.
From APISIX 3.16.0, supports referencing values from environment variables using the
$ENV://prefix or from a secret manager using the$secret://prefix. For more information, see secrets.timeout
vaild vaule:
greater than 0
Time to keep the connection alive for after sending a request.
ssl_verify
If true, verify SSL.
log_format
Custom log format using key-value pairs in JSON format. Values can reference built-in variables.
In APISIX from 3.15.0, log format nested structures are supported up to five levels deep. In API7 Enterprise, only flat key-value structures are supported; nested structures are not yet supported.
You can also configure log format on a global scale using the plugin metadata, which configures the log format for all
clickhouse-loggerplugin instances. If the log format configured on the individual plugin instance differs from the log format configured on plugin metadata, the log format configured on the individual plugin instance takes precedence. See the example for more details.log_format_extra
Additional fields to add to the default log entry, using key-value pairs in JSON format. Values can reference built-in variables. A configured field does not overwrite an existing default field. A plugin instance takes precedence over plugin metadata; setting an empty object on the instance disables the metadata value. When
log_formatis configured,log_format_extrais ignored. Introduced in API7 Enterprise 3.9.15 and 3.10.2, and APISIX 3.18.0.include_req_body
If true, include the request body in the log. Note that if the request body is too big to be kept in the memory, it can not be logged due to NGINX's limitations.
include_req_body_expr
An array of one or more conditions in the form of APISIX expressions. Used when the
include_req_bodyis true. Request body would only be logged when the expressions configured here evaluate to true.include_resp_body
If true, include the response body in the log.
include_resp_body_expr
An array of one or more conditions in the form of APISIX expressions. Used when the
include_resp_bodyis true. Response body would only be logged when the expressions configured here evaluate to true.max_req_body_bytes
vaild vaule:
greater than or equal to 1
Maximum request body size in bytes to include in the log. If the request body exceeds this value, it will be truncated. Available in APISIX from 3.16.0.
max_resp_body_bytes
vaild vaule:
greater than or equal to 1
Maximum response body size in bytes to include in the log. If the response body exceeds this value, it will be truncated. Available in APISIX from 3.16.0.
name
Unique identifier of the plugin for the batch processor. If you use Prometheus to monitor APISIX metrics, the name is exported in
apisix_batch_process_entries.batch_max_size
vaild vaule:
greater than 0
The number of log entries allowed in one batch. Once reached, the batch will be sent to the logging service. Setting this parameter to 1 means immediate processing.
inactive_timeout
vaild vaule:
greater than 0
The maximum time in seconds to wait for new logs before sending the batch to the logging service. The value should be smaller than
buffer_duration.buffer_duration
vaild vaule:
greater than 0
The maximum time in seconds from the earliest entry allowed before sending the batch to the logging service.
retry_delay
vaild vaule:
greater than or equal to 0
The time interval in seconds to retry sending the batch to the logging service if the batch was not successfully sent.
max_retry_count
vaild vaule:
greater than or equal to 0
The maximum number of unsuccessful retries allowed before dropping the log entries.
Plugin Metadata
log_format
Custom log format using key-value pairs in JSON format. Values can reference built-in variables.
In APISIX from 3.15.0, log format nested structures are supported up to five levels deep. In API7 Enterprise, only flat key-value structures are supported; nested structures are not yet supported.
log_format_extra
Additional fields to add to the default log entry, using key-value pairs in JSON format. Values can reference built-in variables. A configured field does not overwrite an existing default field. A plugin instance takes precedence over plugin metadata; setting an empty object on the instance disables the metadata value. When
log_formatis configured,log_format_extrais ignored. Introduced in API7 Enterprise 3.9.15 and 3.10.2, and APISIX 3.18.0.max_pending_entries
vaild vaule:
greater than or equal to 1
Maximum number of entries waiting in the batch processor. New entries are discarded when the backlog reaches the limit.
Introduced in API7 Enterprise 3.8.17 and APISIX 3.15.0.
The default changed to
8192in APISIX 3.18.0. In API7 Enterprise 3.9.18 and 3.10.5, and in earlier APISIX versions, omitting the parameter leaves the backlog unlimited.See Batch Processor for sizing and verification guidance.