Configuration
This plugin is compatible with DB-less mode.
Compatible protocols
The StatsD
plugin is compatible with the following protocols:
grpc
, grpcs
, http
, https
, tcp
, tls
, tls_passthrough
, udp
, ws
, wss
Parameters
Here's a list of all the parameters which can be used in this plugin's configuration:
-
name
string requiredThe name of the plugin, in this case
statsd
. -
instance_name
stringAn optional custom name to identify an instance of the plugin, for example
statsd_my-service
. Useful when running the same plugin in multiple contexts, for example, on multiple services. -
service.name or service.id
stringThe name or ID of the service the plugin targets. Set one of these parameters if adding the plugin to a service through the top-level
/plugins
endpoint. Not required if using/services/SERVICE_NAME|SERVICE_ID/plugins
. -
route.name or route.id
stringThe name or ID of the route the plugin targets. Set one of these parameters if adding the plugin to a route through the top-level
/plugins
endpoint. Not required if using/routes/ROUTE_NAME|ROUTE_ID/plugins
. -
consumer.name or consumer.id
stringThe name or ID of the consumer the plugin targets. Set one of these parameters if adding the plugin to a consumer through the top-level
/plugins
endpoint. Not required if using/consumers/CONSUMER_NAME|CONSUMER_ID/plugins
. -
enabled
boolean default:true
Whether this plugin will be applied.
-
config
record required-
host
string default:localhost
The IP address or hostname of StatsD server to send data to.
-
port
integer default:8125
between:0
65535
The port of StatsD server to send data to.
-
prefix
string default:kong
String to prefix to each metric’s name.
-
metrics
array of typerecord
default:{"stat_type"=>"counter", "sample_rate"=>1, "name"=>"request_count"}, {"name"=>"latency", "stat_type"=>"timer"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"request_size"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"status_count"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"response_size"}, {"name"=>"unique_users", "stat_type"=>"set"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"request_per_user"}, {"name"=>"upstream_latency", "stat_type"=>"timer"}, {"name"=>"kong_latency", "stat_type"=>"timer"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"status_count_per_user"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"status_count_per_workspace"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"status_count_per_user_per_route"}, {"stat_type"=>"gauge", "sample_rate"=>1, "name"=>"shdict_usage"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"cache_datastore_hits_total"}, {"stat_type"=>"counter", "sample_rate"=>1, "name"=>"cache_datastore_misses_total"}
List of metrics to be logged. Available values are described under Metrics.
-
name
string required Must be one of:kong_latency
,latency
,request_count
,request_per_user
,request_size
,response_size
,status_count
,status_count_per_user
,unique_users
,upstream_latency
,status_count_per_workspace
,status_count_per_user_per_route
,shdict_usage
,cache_datastore_hits_total
,cache_datastore_misses_total
-
stat_type
string required Must be one of:counter
,gauge
,histogram
,meter
,set
,timer
-
sample_rate
number
-
consumer_identifier
string Must be one of:consumer_id
,custom_id
,username
-
service_identifier
string Must be one of:service_id
,service_name
,service_host
,service_name_or_host
-
workspace_identifier
string Must be one of:workspace_id
,workspace_name
-
-
allow_status_codes
array of typestring
List of status code ranges that are allowed to be logged in metrics.
-
udp_packet_size
number default:0
between:0
65507
Combine UDP packet up to the size configured. If zero (0), don’t combine the UDP packet. Must be a number between 0 and 65507 (inclusive).
-
use_tcp
boolean default:false
Use TCP instead of UDP.
-
hostname_in_prefix
boolean default:false
Include the
hostname
in theprefix
for each metric name.
-
consumer_identifier_default
string required default:custom_id
Must be one of:consumer_id
,custom_id
,username
The default consumer identifier of metrics. This takes effect when a metric’s consumer identifier is omitted. Allowed values are
custom_id
,consumer_id
,username
.
-
service_identifier_default
string required default:service_name_or_host
Must be one of:service_id
,service_name
,service_host
,service_name_or_host
The default service identifier of metrics. This takes effect when a metric’s service identifier is omitted. Allowed values are
service_name_or_host
,service_id
,service_name
,service_host
.
-
workspace_identifier_default
string required default:workspace_id
Must be one of:workspace_id
,workspace_name
The default workspace identifier of metrics. This will take effect when a metric’s workspace identifier is omitted. Allowed values are
workspace_id
,workspace_name
.
-
retry_count
integerNumber of times to retry when sending data to the upstream server.
-
queue_size
integerMaximum number of log entries to be sent on each message to the upstream server.
-
flush_timeout
numberOptional time in seconds. If
queue_size
> 1, this is the max idle time before sending a log with less thanqueue_size
records.
-
tag_style
string Must be one of:dogstatsd
,influxdb
,librato
,signalfx
The tag style configurations to send metrics with tags. Defaults to
nil
, which doesn’t add any tags to the metrics. Allowed values aredogstatsd
,influxdb
,librato
, andsignalfx
.
-
queue
record required-
max_batch_size
number default:1
between:1
1000000
Maximum number of entries to be processed together as a batch.
-
max_coalescing_delay
number default:1
between:0
3600
Maximum number of seconds (as a fraction) that can elapse after the first entry was queued before the queue starts processing entries. This parameter has no effect when
batch_max_size
is one because queued entries will be sent immediately in that case.
-
max_entries
number default:10000
between:1
1000000
Maximum number of entries that can be waiting on the queue. Once this number of requests is reached, the oldest entry is deleted from the queue before a new one is added.
-
max_bytes
numberMaximum number of bytes that can be waiting on a queue. Once this many bytes are present on a queue, old entries up to the size of a new entry to be enqueued are deleted from the queue.
-
max_retry_time
number default:60
Time (in seconds) before the queue gives up trying to send a batch of entries. Once this time is exceeded for a batch, it is deleted from the queue without being sent. If his parameter is set to -1, no retries will be made for a failed batch.
-
initial_retry_delay
number default:0.01
Maximum time (in seconds) between retries sending a batch of entries. The interval between retries follows an exponential back-off algorithm capped at this number of seconds.
-
max_retry_delay
number default:60
-
-