Exporting Metrics to Datadog

First off the Datadog agent needs to be installed in the Kubernetes cluster. Documentation for that is found in the Datadog docs. Make sure to enable the prometheusScrape option documented in prometheus scrape docs.

# datadog helm values.yaml
# ...
datadog:
# ...
  prometheusScrape:
    enabled: true
# ...

Finally, to collect the K10 metrics in Datadog, apply the following values to either the K10 install or upgrade (using Helm).

# K10 values.yaml
prometheus:
  server:
    podAnnotations:
      ad.datadoghq.com/prometheus-server.check_names: |
        ["openmetrics"]
      ad.datadoghq.com/prometheus-server.init_configs: |
        [{}]
      ad.datadoghq.com/prometheus-server.instances: |
        [{
          "prometheus_url": "http://%%host%%:%%port%%/k10/prometheus/federate?match[]=%7Bjob%3D~%22.%2B%22%7D",
          "namespace": "kasten-io",
          "metrics": ["*"],
          "type_overrides": {"*": "counter"}
        }]

for example, given the above values.yaml file, if doing a helm install, the command would be:

helm install k10 kasten/k10 --create-namespace --namespace kasten-io --values values.yaml

If doing a helm upgrade to patch your install with the above values, run the following:

helm --namespace kasten-io get values k10 > values.yaml
# note, if no values have been applied yet, then that file will be empty
# add the values from the example file above and run
helm upgrade k10 kasten/k10 --namespace kasten-io --values values.yaml

To dive deeper into adding metrics to Datadog see the following documentation links: - Kubernetes Prometheus and OpenMetrics metrics collection - Prometheus Helm Values - Server Pod Annotations - Using K10's Prometheus Endpoint