udp listener: add os buffer size notes & change default port
- using 8092 as the default port because it's similar to the rest of the TICK stack (InfluxDB, for example, uses 8083, 8086, 8088, etc.). didn't want to use 8125 because that conflicts with statsd. closes #758
This commit is contained in:
parent
89f8652ac3
commit
b0c54ccc31
|
@ -12,7 +12,7 @@ This is a sample configuration for the plugin.
|
||||||
```toml
|
```toml
|
||||||
[[inputs.udp_listener]]
|
[[inputs.udp_listener]]
|
||||||
## Address and port to host UDP listener on
|
## Address and port to host UDP listener on
|
||||||
service_address = ":8125"
|
service_address = ":8092"
|
||||||
|
|
||||||
## Number of UDP messages allowed to queue up. Once filled, the
|
## Number of UDP messages allowed to queue up. Once filled, the
|
||||||
## UDP listener will start dropping packets.
|
## UDP listener will start dropping packets.
|
||||||
|
@ -29,3 +29,63 @@ This is a sample configuration for the plugin.
|
||||||
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
|
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
|
||||||
data_format = "influx"
|
data_format = "influx"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## A Note on UDP OS Buffer Sizes
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
### BSD/Darwin
|
||||||
|
|
||||||
|
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.](https://github.com/freebsd/freebsd/blob/master/sys/kern/uipc_sockbuf.c#L63-L64)
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
|
@ -32,7 +32,7 @@ var dropwarn = "ERROR: Message queue full. Discarding line [%s] " +
|
||||||
|
|
||||||
const sampleConfig = `
|
const sampleConfig = `
|
||||||
## Address and port to host UDP listener on
|
## Address and port to host UDP listener on
|
||||||
service_address = ":8125"
|
service_address = ":8092"
|
||||||
|
|
||||||
## Number of UDP messages allowed to queue up. Once filled, the
|
## Number of UDP messages allowed to queue up. Once filled, the
|
||||||
## UDP listener will start dropping packets.
|
## UDP listener will start dropping packets.
|
||||||
|
@ -40,7 +40,7 @@ const sampleConfig = `
|
||||||
|
|
||||||
## UDP packet size for the server to listen for. This will depend
|
## UDP packet size for the server to listen for. This will depend
|
||||||
## on the size of the packets that the client is sending, which is
|
## on the size of the packets that the client is sending, which is
|
||||||
## usually 1500 bytes.
|
## usually 1500 bytes, but can be as large as 65,535 bytes.
|
||||||
udp_packet_size = 1500
|
udp_packet_size = 1500
|
||||||
|
|
||||||
## Data format to consume. This can be "json", "influx" or "graphite"
|
## Data format to consume. This can be "json", "influx" or "graphite"
|
||||||
|
|
Loading…
Reference in New Issue