Ingest OpenTelemetry metrics

When ingesting OpenTelemetry metrics, the following rules and details apply.

Dynatrace mapping

Dynatrace maps the individual OpenTelemetry instruments to the following Dynatrace metric types:

Instrument
with temporality
maps to Dynatrace
Counter
Delta
Counter
Counter
Cumulative
N/A
Gauge
N/A
Gauge
Explicit bucket histogram
Delta
Histogram
Exponential Histogram 1
Delta
Exponential Histogram
UpDownCounter
Delta
Counter
UpDownCounter
Cumulative
Gauge
1

For Exponential Histogram, Dynatrace ingests the histogram's min|max|sum|count but doesn't ingest the buckets.

Histogram support

Histograms are supported starting Dynatrace version 1.300.

Attribute ingestion

OpenTelemetry supports attributes on different levels in an OpenTelemetry metric request (that is, data points, scopes, and resources). Because attributes are saved in a flattened fashion on the Dynatrace side, there may be name collisions if attributes on different levels share the same name.

To handle such name conflicts, Dynatrace applies the following order of priority to choose which attribute will be ingested:

  1. Data point attributes
  2. Scope attributes
  3. Resource attributes

For example, if there is a data point and a scope attribute with the same name, the value of the data point will take precedence. Similarly, if a scope and resource attribute share the same name, Dynatrace will ingest the value of the scope attribute.

Dynatrace ingestion metrics

The following Dynatrace-specific metrics can be useful when analyzing metrics ingestion issues.

Dynatrace version 1.280+

Name
Description
dsfm:active_gate.metrics.ingest.otlp.datapoints.accepted
Number of accepted data points
dsfm:active_gate.metrics.ingest.otlp.datapoints.rejected
Number of rejected data points

Dynatrace version 1.279 and earlier

Name
Description
dsfm:active_gate.metrics.ingest.otlp.datapoints.accepted.count
Number of accepted data points
dsfm:active_gate.metrics.ingest.otlp.datapoints.rejected.count
Number of rejected data points

Rejection reason

Rejected metrics have a reason dimension that provides additional details on why OpenTelemetry metrics were rejected. In Dynatrace, you can filter, sort, and split by that dimension.

Typical rejections

Typical reasons why metrics are rejected by Dynatrace:

  • Metrics sent with a cumulative aggregation temporality (reason: UNSUPPORTED_METRIC_TYPE_MONOTONIC_CUMULATIVE_SUM)—Switch to delta aggregation.