Skip to content

Latest commit

 

History

History

dogstatsd

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

DogStatsD

DogStatsD accepts custom application metric points and periodically aggregates and forwards them to Datadog, where they can be graphed on dashboards. DogStatsD implements the StatsD protocol, along with a few extensions for special Datadog features.

Quick start

DogStatsD uses the same configuration file as the Agent, you can pass it through the command line:

dogstatsd start -f datadog.yaml

The relevant configuration parameters are also accepted as environment variables:

DD_API_KEY=XXX dogstatsd start -f datadog.yaml

If you want to connect through a Unix socket instead of a UDP socket, you can set the dogstatsd_socket option in the configuration file, or use the -s command argument:

dogstatsd start -f datadog.yaml -s /tmp/dsd.sock

The easiest way to run DogStatsD is starting a Docker container (still not publicly available):

docker run -e DD_API_KEY=XXX datadog/dogstatsd:beta

Why UDP?

Like StatsD, DogStatsD receives points over UDP. UDP is good fit for application instrumentation because it is a fire and forget protocol. This means your application won’t stop its actual work to wait for a response from the metrics server, which is very important if the metrics server is down or inaccessible.

Why Unix Sockets?

Datagram sockets have the same semantics as UDP and can usually be used instead of UDP with little code change. Beside setting the socket as non-blocking, there's not much more to do on the client side to talk with DogStatsD but there are many advantages when using this connection strategy:

  • bypass networking configuration in containerized environments, specially useful with orchestrators
  • if the server is overloaded, while keeping a non blocking approach the client can actually know whether packets are being dropped.