Datadog metrics supported features
Caution
Datadog proxy, the Grafana Cloud service used to ingest and query Datadog metrics, is deprecated as of June 6, 2024.
The service remains available for anyone who has accessed the proxy between June 6, 2023 and June 6, 2024.
For other users, this service has limited availability and access to the service might be removed at any point. For an alternative, refer to the blog post on translating Datadog metrics into OTLP with the OpenTelemetry Collector and Grafana Alloy.
For any questions, contact Support.
Feature | Supported? |
---|---|
Metrics | Yes |
Dashboards | Yes |
Alarms | No |
Logs | No |
Every metric type except DISTRIBUTION
is supported. Some visualization representations will look different when a dashboard is imported to Grafana Cloud.
COUNT
: Converted into a Prometheus gauge instead of a Prometheus counter. Prometheus counters cannot handle decreases.RATE
: Multiplied by the flush interval and then converted into a Prometheus gauge. The rate is transformed into its count equivalent.GAUGE
: Converted to a Prometheus gauge.SET
: Converted to a Prometheus gauge.HISTOGRAM
: The server receives a set ofGAUGE
andRATE
metrics that are converted.
Data model
Internally, Datadog metrics are translated into Prometheus ones. Because of incompatibilities between the Datadog and Prometheus metric data formats, translating a metric between requires some special transformations. In addition to the translation tables below, some internal labels are also added to the Prometheus version of the metric. The original version of the metric can be queried using the Datadog datasource.
- Metric names: Because Prometheus metric names have different character restrictions than Datadog, the translation might look different.
- Tags: Called
labels
in Prometheus. Since Prometheus labels have different character restrictions than Datadog, the translation might look different.
Metric name mappings
Datadog character | Prometheus mapping | Example Datadog metric | Example translated to Prometheus metric |
---|---|---|---|
_ | __ | metric_1 | metric__1 |
. | _dot_ | metric.1 | metric_dot_1 |
Unsupported characters | __ | metric$1 | metric__1 |
Tag mappings
Datadog tag component | Prometheus mapping | Example Datadog metric | Example translated to Prometheus metric |
---|---|---|---|
Tag values | Quotes around tag values | metric{a:b} | metric{a=”’b’”} |
Multiple tag values | Comma separators between tag values | metric{a:b,a:c} | metric{a=”’b’,’c’”} |
_ | __ for tag names, tag values unchanged | metric{a_b:c_d} | metric{a__b=”c_d’”} |
. | _dot_ for tag names, tag values unchanged | metric{a.b:c.d} | metric{a_dot_b=”’c.d’”} |
- | _dsh_ for tag names, tag values unchanged | metric{a-b:c-d} | metric{a_dsh_b=”c-d’”} |
/ | _sls_ for tag names, tag values unchanged | metric{a/b:c/d} | metric{a_sls_b=”c/d’”} |
Unnamed tag | Prepended with _dot_unnamed_dot_ | metric{a} | metric{_dot_unnamed_dot_a=”’a’”} |
Unsupported characters | __ for tag names, _ for tag values | metric{a$b:c!d} | metric{a__b:c_d} |
Other
Feature | Supported? | Notes |
---|---|---|
Host Tags | Yes | |
Service checks | Yes | |
Data Retention | Yes | Grafana Cloud retains metrics for 13 months. This is customizable. |
Out of Order Metrics | Yes | Mimir has experimental support for out of order metrics. |
Metric Metadata | No | |
SlOs | No |
Datadog features
Feature | Supported? | Notes |
---|---|---|
Metric Filter | Yes | |
Space Aggregation | Yes | |
Grouping | Yes | |
Metric Arithmetic | Yes | |
Metric Type Modifiers | Yes | |
Multiple query metrics | Yes | |
Time Aggregation (Rollup) | Partially | Multiple rollup intervals for a single metric are not supported. |
Datadog functions
- Algorithms
anomalies()
: noforecast()
: nooutliers()
: no
- Arithmetic
abs()
: yeslog2()
: yeslog10()
: nocumsum()
: yesintegral()
: no
- Count
count_non_zero()
: yescount_not_null()
: yes
- Exclusion
exclude_null()
: yesclamp_min()
: yesclamp_max()
: yescutoff_min()
: yescutoff_max()
: yes
- Interpolation
fill()
: nodefault_zero()
: no
- Rank
top()
: partially, “area” and “l2norm” aggregation methods are not supported. The convenience functions (e.g.bottom10_min()
) are supported
- Rate
per_second()
: yesper_minute()
: yesper_hour()
: yesdt()
: no but agent sends metrics every 10s anyway.diff()
: yesmonotonic_diff()
: noderivative()
: no
- Regression
robust_trend()
: notrend_line()
: nopiecewise_constant()
: no
- Rollup
rollup()
: partially, see “Time Aggregation (Rollup)” in previous sectionmoving_rollup()
: no
- Smoothing
autosmooth()
: noewma_[3/5/10/20]()
: yesmedian_[3/5/7/9]()
: yes
- Timeshift
timeshift()
: yes<TIMEPERIOD>_before()
: yes
Dashboard coverage
This section describes the Datadog features that the Datadog Dashboard Translator supports. Unknown widgets are shown as text panels in the converted dashboard.
Dashboard types
Timeboards
are supported and automatically snap to a fixed grid.
Datadog screenboards
have free-form layouts and different graphs can have different time scopes, they are partially supported. The Grafana migration tool transforms a screenboard
into a timeboard
.
Widgets
- Alert Graph: no
- Alert Value: no
- Change: no
- Check Status: yes, that status checks are converted into Prometheus metrics in the background.
- Distribution : no
- Event Stream: no
- Event Timeline: no
- Free Text: no
- Geomap: no
- Group: yes
- HeatMap: no
- Hostmap: no
- Iframe: no
- Image: yes
- Links: no
- Log Stream: no
- Monitor Summary: no
- Network: no
- Notes : yes
- Query value: partial; each widget can only have a single query.
- Scatter Plot: no
- Service Level Objective (SLO): no
- Service Map: no
- Service Summary: no
- Table: partial; each widget can only have a single query and a basic attempt is made for splitting fields into their own columns.
- Timeseries: yes
- Top List: partial; each widget can only have a single query.
Other
- Template Variables: yes
- Colors: no
- Events Overlay: no