update readme
This commit is contained in:
parent
51916c19e7
commit
057faf9de9
|
|
@ -1,3 +1,83 @@
|
||||||
# datadogunifi
|
# datadogunifi
|
||||||
|
|
||||||
UniFi Poller Output Plugin for DataDog
|
UniFi Poller Output Plugin for DataDog
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
datadog:
|
||||||
|
# How often to poll UniFi and report to Datadog.
|
||||||
|
interval: "2m"
|
||||||
|
|
||||||
|
# To disable this output plugin
|
||||||
|
disable: false
|
||||||
|
|
||||||
|
# Datadog Custom Options
|
||||||
|
|
||||||
|
# address to talk to the datadog agent, by default this uses the local statsd UDP interface
|
||||||
|
# address: "..."
|
||||||
|
|
||||||
|
# namespace to prepend to all data
|
||||||
|
# namespace: ""
|
||||||
|
|
||||||
|
# tags to append to all data
|
||||||
|
# tags:
|
||||||
|
# - foo
|
||||||
|
|
||||||
|
# max_bytes_per_payload is the maximum number of bytes a single payload will contain.
|
||||||
|
# The magic value 0 will set the option to the optimal size for the transport
|
||||||
|
# protocol used when creating the client: 1432 for UDP and 8192 for UDS.
|
||||||
|
# max_bytes_per_payload: 0
|
||||||
|
|
||||||
|
# max_messages_per_payload is the maximum number of metrics, events and/or service checks a single payload will contain.
|
||||||
|
# This option can be set to `1` to create an unbuffered client.
|
||||||
|
# max_messages_per_payload: 0
|
||||||
|
|
||||||
|
# BufferPoolSize is the size of the pool of buffers in number of buffers.
|
||||||
|
# The magic value 0 will set the option to the optimal size for the transport
|
||||||
|
# protocol used when creating the client: 2048 for UDP and 512 for UDS.
|
||||||
|
# buffer_pool_size: 0
|
||||||
|
|
||||||
|
# buffer_flush_interval is the interval after which the current buffer will get flushed.
|
||||||
|
# buffer_flush_interval: 0
|
||||||
|
|
||||||
|
# buffer_shard_count is the number of buffer "shards" that will be used.
|
||||||
|
# Those shards allows the use of multiple buffers at the same time to reduce
|
||||||
|
# lock contention.
|
||||||
|
# buffer_shard_count: 0
|
||||||
|
|
||||||
|
# sender_queue_size is the size of the sender queue in number of buffers.
|
||||||
|
# The magic value 0 will set the option to the optimal size for the transport
|
||||||
|
# protocol used when creating the client: 2048 for UDP and 512 for UDS.
|
||||||
|
# sender_queue_size: 0
|
||||||
|
|
||||||
|
# write_timeout_uds is the timeout after which a UDS packet is dropped.
|
||||||
|
# write_timeout_uds: 5000
|
||||||
|
|
||||||
|
# receive_mode determines the behavior of the client when receiving to many
|
||||||
|
# metrics. The client will either drop the metrics if its buffers are
|
||||||
|
# full (ChannelMode mode) or block the caller until the metric can be
|
||||||
|
# handled (MutexMode mode). By default the client will MutexMode. This
|
||||||
|
# option should be set to ChannelMode only when use under very high
|
||||||
|
# load.
|
||||||
|
#
|
||||||
|
# MutexMode uses a mutex internally which is much faster than
|
||||||
|
# channel but causes some lock contention when used with a high number
|
||||||
|
# of threads. Mutex are sharded based on the metrics name which
|
||||||
|
# limit mutex contention when goroutines send different metrics.
|
||||||
|
#
|
||||||
|
# ChannelMode: uses channel (of ChannelModeBufferSize size) to send
|
||||||
|
# metrics and drop metrics if the channel is full. Sending metrics in
|
||||||
|
# this mode is slower that MutexMode (because of the channel), but
|
||||||
|
# will not block the application. This mode is made for application
|
||||||
|
# using many goroutines, sending the same metrics at a very high
|
||||||
|
# volume. The goal is to not slow down the application at the cost of
|
||||||
|
# dropping metrics and having a lower max throughput.
|
||||||
|
# receive_mode: 0
|
||||||
|
|
||||||
|
# channel_mode_buffer_size is the size of the channel holding incoming metrics
|
||||||
|
# channel_mode_buffer_size: 0
|
||||||
|
|
||||||
|
# aggregation_flush_interval is the interval for the aggregator to flush metrics
|
||||||
|
# aggregation_flush_interval: 0
|
||||||
|
```
|
||||||
|
|
@ -34,32 +34,41 @@ type Config struct {
|
||||||
|
|
||||||
// Namespace to prepend to all metrics, events and service checks name.
|
// Namespace to prepend to all metrics, events and service checks name.
|
||||||
Namespace *string `json:"namespace" toml:"namespace" xml:"namespace,attr" yaml:"namespace"`
|
Namespace *string `json:"namespace" toml:"namespace" xml:"namespace,attr" yaml:"namespace"`
|
||||||
|
|
||||||
// Tags are global tags to be applied to every metrics, events and service checks.
|
// Tags are global tags to be applied to every metrics, events and service checks.
|
||||||
Tags []string `json:"tags" toml:"tags" xml:"tags,attr" yaml:"tags"`
|
Tags []string `json:"tags" toml:"tags" xml:"tags,attr" yaml:"tags"`
|
||||||
|
|
||||||
// MaxBytesPerPayload is the maximum number of bytes a single payload will contain.
|
// MaxBytesPerPayload is the maximum number of bytes a single payload will contain.
|
||||||
// The magic value 0 will set the option to the optimal size for the transport
|
// The magic value 0 will set the option to the optimal size for the transport
|
||||||
// protocol used when creating the client: 1432 for UDP and 8192 for UDS.
|
// protocol used when creating the client: 1432 for UDP and 8192 for UDS.
|
||||||
MaxBytesPerPayload *int `json:"max_bytes_per_payload" toml:"max_bytes_per_payload" xml:"max_bytes_per_payload,attr" yaml:"max_bytes_per_payload"`
|
MaxBytesPerPayload *int `json:"max_bytes_per_payload" toml:"max_bytes_per_payload" xml:"max_bytes_per_payload,attr" yaml:"max_bytes_per_payload"`
|
||||||
|
|
||||||
// MaxMessagesPerPayload is the maximum number of metrics, events and/or service checks a single payload will contain.
|
// MaxMessagesPerPayload is the maximum number of metrics, events and/or service checks a single payload will contain.
|
||||||
// This option can be set to `1` to create an unbuffered client.
|
// This option can be set to `1` to create an unbuffered client.
|
||||||
MaxMessagesPerPayload *int `json:"max_messages_per_payload" toml:"max_messages_per_payload" xml:"max_messages_per_payload,attr" yaml:"max_messages_per_payload"`
|
MaxMessagesPerPayload *int `json:"max_messages_per_payload" toml:"max_messages_per_payload" xml:"max_messages_per_payload,attr" yaml:"max_messages_per_payload"`
|
||||||
|
|
||||||
// BufferPoolSize is the size of the pool of buffers in number of buffers.
|
// BufferPoolSize is the size of the pool of buffers in number of buffers.
|
||||||
// The magic value 0 will set the option to the optimal size for the transport
|
// The magic value 0 will set the option to the optimal size for the transport
|
||||||
// protocol used when creating the client: 2048 for UDP and 512 for UDS.
|
// protocol used when creating the client: 2048 for UDP and 512 for UDS.
|
||||||
BufferPoolSize *int `json:"buffer_pool_size" toml:"buffer_pool_size" xml:"buffer_pool_size,attr" yaml:"buffer_pool_size"`
|
BufferPoolSize *int `json:"buffer_pool_size" toml:"buffer_pool_size" xml:"buffer_pool_size,attr" yaml:"buffer_pool_size"`
|
||||||
|
|
||||||
// BufferFlushInterval is the interval after which the current buffer will get flushed.
|
// BufferFlushInterval is the interval after which the current buffer will get flushed.
|
||||||
BufferFlushInterval *cnfg.Duration `json:"buffer_flush_interval" toml:"buffer_flush_interval" xml:"buffer_flush_interval,attr" yaml:"buffer_flush_interval"`
|
BufferFlushInterval *cnfg.Duration `json:"buffer_flush_interval" toml:"buffer_flush_interval" xml:"buffer_flush_interval,attr" yaml:"buffer_flush_interval"`
|
||||||
|
|
||||||
// BufferShardCount is the number of buffer "shards" that will be used.
|
// BufferShardCount is the number of buffer "shards" that will be used.
|
||||||
// Those shards allows the use of multiple buffers at the same time to reduce
|
// Those shards allows the use of multiple buffers at the same time to reduce
|
||||||
// lock contention.
|
// lock contention.
|
||||||
BufferShardCount *int `json:"buffer_shard_count" toml:"buffer_shard_count" xml:"buffer_shard_count,attr" yaml:"buffer_shard_count"`
|
BufferShardCount *int `json:"buffer_shard_count" toml:"buffer_shard_count" xml:"buffer_shard_count,attr" yaml:"buffer_shard_count"`
|
||||||
|
|
||||||
// SenderQueueSize is the size of the sender queue in number of buffers.
|
// SenderQueueSize is the size of the sender queue in number of buffers.
|
||||||
// The magic value 0 will set the option to the optimal size for the transport
|
// The magic value 0 will set the option to the optimal size for the transport
|
||||||
// protocol used when creating the client: 2048 for UDP and 512 for UDS.
|
// protocol used when creating the client: 2048 for UDP and 512 for UDS.
|
||||||
SenderQueueSize *int `json:"sender_queue_size" toml:"sender_queue_size" xml:"sender_queue_size,attr" yaml:"sender_queue_size"`
|
SenderQueueSize *int `json:"sender_queue_size" toml:"sender_queue_size" xml:"sender_queue_size,attr" yaml:"sender_queue_size"`
|
||||||
|
|
||||||
// WriteTimeoutUDS is the timeout after which a UDS packet is dropped.
|
// WriteTimeoutUDS is the timeout after which a UDS packet is dropped.
|
||||||
WriteTimeoutUDS *cnfg.Duration `json:"write_timeout_uds" toml:"write_timeout_uds" xml:"write_timeout_uds,attr" yaml:"write_timeout_uds"`
|
WriteTimeoutUDS *cnfg.Duration `json:"write_timeout_uds" toml:"write_timeout_uds" xml:"write_timeout_uds,attr" yaml:"write_timeout_uds"`
|
||||||
// ReceiveMode determins the behavior of the client when receiving to many
|
|
||||||
|
// ReceiveMode determines the behavior of the client when receiving to many
|
||||||
// metrics. The client will either drop the metrics if its buffers are
|
// metrics. The client will either drop the metrics if its buffers are
|
||||||
// full (ChannelMode mode) or block the caller until the metric can be
|
// full (ChannelMode mode) or block the caller until the metric can be
|
||||||
// handled (MutexMode mode). By default the client will MutexMode. This
|
// handled (MutexMode mode). By default the client will MutexMode. This
|
||||||
|
|
@ -79,8 +88,10 @@ type Config struct {
|
||||||
// volume. The goal is to not slow down the application at the cost of
|
// volume. The goal is to not slow down the application at the cost of
|
||||||
// dropping metrics and having a lower max throughput.
|
// dropping metrics and having a lower max throughput.
|
||||||
ReceiveMode *statsd.ReceivingMode `json:"receive_mode" toml:"receive_mode" xml:"receive_mode,attr" yaml:"receive_mode"`
|
ReceiveMode *statsd.ReceivingMode `json:"receive_mode" toml:"receive_mode" xml:"receive_mode,attr" yaml:"receive_mode"`
|
||||||
|
|
||||||
// ChannelModeBufferSize is the size of the channel holding incoming metrics
|
// ChannelModeBufferSize is the size of the channel holding incoming metrics
|
||||||
ChannelModeBufferSize *int `json:"channel_mode_buffer_size" toml:"channel_mode_buffer_size" xml:"channel_mode_buffer_size,attr" yaml:"channel_mode_buffer_size"`
|
ChannelModeBufferSize *int `json:"channel_mode_buffer_size" toml:"channel_mode_buffer_size" xml:"channel_mode_buffer_size,attr" yaml:"channel_mode_buffer_size"`
|
||||||
|
|
||||||
// AggregationFlushInterval is the interval for the aggregator to flush metrics
|
// AggregationFlushInterval is the interval for the aggregator to flush metrics
|
||||||
AggregationFlushInterval *time.Duration `json:"aggregation_flush_interval" toml:"aggregation_flush_interval" xml:"aggregation_flush_interval,attr" yaml:"aggregation_flush_interval"`
|
AggregationFlushInterval *time.Duration `json:"aggregation_flush_interval" toml:"aggregation_flush_interval" xml:"aggregation_flush_interval,attr" yaml:"aggregation_flush_interval"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue