Parameters
See plugin common configurations for configuration options available to all plugins.
endpoint_addrs
array[string]
required
Loki API base URLs, such as
http://127.0.0.1:3100
. If multiple endpoints are configured, the log will be pushed to a randomly determined endpoint from the list.endpoint_uri
string
default:
/loki/api/v1/push
URI path to the Loki ingest endpoint.
tenant_id
string
default:
fake
Loki tenant ID. According to Loki's multi-tenancy documentation, the default value is set to
fake
under single-tenancy.log_labels
object
default:
{job = "apisix"}
Loki log label. Support built-in variables and constant strings in values. Variables should be prefixed with a
$
sign. For example, the label can be{"origin" = "apisix"}
or{"origin" = "$remote_addr"}
.ssl_verify
boolean
default:
false
If true, verify Loki's SSL certificates.
timeout
integer
default:
3000
vaild vaule:
between 1 and 60000 inclusive
Timeout for the Loki service HTTP call in milliseconds.
keepalive
boolean
default:
true
If true, keep the connection alive for multiple requests.
keepalive_timeout
integer
default:
60000
vaild vaule:
greater than or equal to 1000
Keepalive timeout in milliseconds.
keepalive_pool
integer
default:
5
vaild vaule:
greater than or equal to 1
Maximum number of connections in the connection pool.
log_format
object
Custom log format in key-value pairs in JSON format. Support built-in variables in values.
You can also configure log format on a global scale using the plugin metadata, which configures the log format for all
loki-logger
plugin 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 this example for more details.name
string
default:
loki-logger
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
.include_req_body
boolean
default:
false
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
array[array]
An array of one or more conditions in the form of APISIX expressions. Used when the
include_req_body
is true. Request body would only be logged when the expressions configured here evaluate to true.include_resp_body
boolean
default:
false
If true, include the response body in the log.
include_resp_body_expr
array[array]
An array of one or more conditions in the form of APISIX expressions. Used when the
include_resp_body
is true. Response body would only be logged when the expressions configured here evaluate to true.batch_max_size
integer
default:
1000
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
integer
default:
5
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
integer
default:
60
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
integer
default:
1
vaild vaule:
greater 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
integer
default:
60
vaild vaule:
greater or equal to 0
The maximum number of unsuccessful retries allowed before dropping the log entries.