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:
For Exponential Histogram, Dynatrace ingests the histogram's min|max|sum|count
but doesn't ingest the buckets.
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:
- Data point attributes
- Scope attributes
- 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+
dsfm:active_gate.metrics.ingest.otlp.datapoints.accepted
dsfm:active_gate.metrics.ingest.otlp.datapoints.rejected
Dynatrace version 1.279 and earlier
dsfm:active_gate.metrics.ingest.otlp.datapoints.accepted.count
dsfm:active_gate.metrics.ingest.otlp.datapoints.rejected.count
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 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.