The UDP listener is a service input plugin that listens for messages on a UDP socket and adds those messages to InfluxDB. The plugin expects messages in the Telegraf Input Data Formats.
This is a sample configuration for the plugin.
[[inputs.udp_listener]]
## Address and port to host UDP listener on
service_address = ":8092"
## Number of UDP messages allowed to queue up. Once filled, the
## UDP listener will start dropping packets.
allowed_pending_messages = 10000
## Data format to consume.
## Each data format has it's own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
data_format = "influx"
Some OSes (most notably, Linux) place very restricive limits on the performance of UDP protocols. It is highly recommended that you increase these OS limits to at least 8MB before trying to run large amounts of UDP traffic to your instance. 8MB is just a recommendation, and can be adjusted higher.
Check the current UDP/IP receive buffer limit & default by typing the following commands:
sysctl net.core.rmem_max
sysctl net.core.rmem_default
If the values are less than 8388608 bytes you should add the following lines to the /etc/sysctl.conf file:
net.core.rmem_max=8388608
net.core.rmem_default=8388608
Changes to /etc/sysctl.conf do not take effect until reboot. To update the values immediately, type the following commands as root:
sysctl -w net.core.rmem_max=8388608
sysctl -w net.core.rmem_default=8388608
On BSD/Darwin systems you need to add about a 15% padding to the kernel limit
socket buffer. Meaning if you want an 8MB buffer (8388608 bytes) you need to set
the kernel limit to 8388608*1.15 = 9646900
. This is not documented anywhere but
happens
in the kernel here.
Check the current UDP/IP buffer limit by typing the following command:
sysctl kern.ipc.maxsockbuf
If the value is less than 9646900 bytes you should add the following lines to the /etc/sysctl.conf file (create it if necessary):
kern.ipc.maxsockbuf=9646900
Changes to /etc/sysctl.conf do not take effect until reboot. To update the values immediately, type the following commands as root:
sysctl -w kern.ipc.maxsockbuf=9646900