DataDog / datadog-go

go dogstatsd client library for datadog
MIT License
353 stars 132 forks source link

Use multiple UDP sockets for sending statsd packets. #279

Open tjmerritt opened 1 year ago

tjmerritt commented 1 year ago

Use multiple UDP sockets for sending statsd packets.

Currently the datadog-go statsd client uses a single UDP socket to send packets to the statsd server. On nodes with a larger number of cores (64+) this creates a bottleneck for sending packets. The Veneur statsd proxy can receive packets on multiple sockets, but since datadog-go only sends packets via a single socket, veneur will only receive packets on a single socket. The single socket becomes a bottleneck within the Linux kernel, and the maximum packet rate is determined by rate that a single core can send packets. This PR provides datadog-go the capability to send packets over multiple sockets and increase the maximum packet rate that the datadog-go client can emit