DogStatsD ingestion

All ingested DogStatsD metrics are subject to sanitization rules that follow the Datadog best practice guidelines (opens in a new tab). For example, Chronosphere converts all DogStatsD labels to lowercase.

When accepting DogStatsD metrics over the UDP, Chronosphere recommends running the Collector as a Kubernetes DaemonSet or as a sidecar.

You can enable client-side aggregations for Datadog metrics. These aggregations reduce network egress and processed writes to the Chronosphere app.

For information on converting Datadog metrics and dashboards to Chronosphere, see our Datadog overview.

Configure DogStatsD ingestion

  1. Download this annotated manifest (opens in a new tab) as a starting point.

  2. Enable DogStatsD mode under the push.dogstatsd.enabled YAML collection in the Collector manifest.

    push:
       dogstatsd:
          enabled: true
  3. Modify additional DogStatsD configuration options under the push.dogstatsd YAML collection.

DogStatsD configuration options

You can configure the following options in the Collector manifest for DogStatsD.

  • listenAddress: The address the UDP server listens on. The default is 0.0.0.0:9125. This address is what your DogStatsD client points to.

    push:
       dogstatsd:
          enabled: true
          listenAddress: 0.0.0.0:9125
  • mode: You can run DogStatsD ingestion in one of these modes when converting DogStatsD METRIC_NAME (opens in a new tab) into Prometheus labels: regular, graphite, or graphite_expanded.

    push:
       dogstatsd:
          enabled: true
          mode: "regular" # "regular", "graphite", or "graphite_expanded"
    • regular (default): DogStatsD METRIC_NAME is assigned the Prometheus __name__ label, replacing all non-alphanumeric and non-dot characters with underscores, with dots changing to underscores (_).

      For example, the METRIC_NAME my.very.first-metric changes to my_very_first_metric{}.

    • graphite: The Prometheus __name__ label receives a constant stat name and the DogStatsD METRIC_NAME assigned to a Prometheus label set in the configuration nameLabelName (default name).

      For example, the METRIC_NAME my.very.first-metric changes to stat{name="my.very.first-metric"}.

    • graphite_expanded: The same as graphite mode, except in addition to storing everything in the nameLabelName label, it splits METRIC_NAME at each . and stores each part in separate labels named like t0, t1, t2, and so on.

      For example, the METRIC_NAME my.very.first-metric changes to stat{name="my.very.first-metric", t0="my", t1="very", t2="first-metric"}.

  • nameLabelName: Defines the label name used to store METRIC_NAME in the graphite and graphite_expanded modes.

    The default value is name.

    push:
       dogstatsd:
          enabled: true
          nameLabelName: name
  • labels: Adds one or more labels to all DogStatsD metrics pushed.

    For example, use this configuration to add the labels env: "staging" and feature: "enabled" to all DogStatsD metrics:

    push:
       dogstatsd:
          enabled: true
          labels:
             env: "staging"
             feature: "enabled"
  • prefix: Adds a prefix to all DogStatsD metrics pushed.

    For example, setting this value to "qa" prefixes all metric names with qa. A metric like "build_info.ip" becomes "qa.build_info.ip".

    push:
       dogstatsd:
          enabled: true
          prefix: "qa"

    You must enter a value for the prefix parameter to add a prefix to your metric names. If you want to prefix your metrics with a non-alphabetic character (such as a period), you must add that character as a value for the prefix parameter. For example, prefix: ".".