OpenTelemetry metrics limitations
When sending data from your application via OpenTelemetry, the following limits and limitations apply.
Limits
Limitations
Aggregation temporality
The Dynatrace backend exclusively works with delta values and requires the respective aggregation temporality. Please ensure your metrics exporter is accordingly configured or set the OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE
environment variable to DELTA
.
For examples on how to set the temporality under each individual language, see the integration walkthroughs.
Metric keys
- A metric key consists of sections separated by dots (for example,
dt.metrics
). - A metric key can contain lowercase and uppercase letters, numbers, hyphens (
-
), and underscores (_
). - A metric key must start with a letter character.
- A metric key must not contain non-Latin characters (such as
ä
,ö
, andü
). - A metric key may be suffixed automatically depending on the payload (for example,
.count
for counters and.gauge
for gauges)
If you use characters that are invalid according to the rules above, they will be replaced with underscores. If your metric key does not have at least one valid character, the data point will be dropped.
Dimension keys
- Dimensions are comparable to span or resources attributes.
- A dimension key can contain only lowercase letters (not uppercase letters), numbers, hyphens (
-
), periods (.
), and underscores (_
). - A dimension key must start with a letter character.
- A dimension key must not contain non-Latin characters (such as
ä
,ö
, andü
). - A dimension key can be in the
key.key-section
format. - You can specify up to 50 dimensions.
- If the same dimension key is specified multiple times in a single payload, only the value that occurs first is accepted.
If you use characters that are invalid according to the rules above, they will be replaced with underscores. If your dimension key does not have at least one valid character, the key will be dropped.
Dimension values must be passed as a string, Boolean, or integer.
Dynatrace does not support non-string dimensions and will convert Booleans and integers to strings upon ingest.
If any other type is used, the entire dimension will be dropped.
Histograms
- For Exponential Histogram, Dynatrace ingests the histogram's
min|max|sum|count
but doesn't ingest the buckets.
If any of below happens, the OpenTelemetry ingest API returns the 400
or 200 with partial success
responses.
- Cumulative histograms aren't ingested (similarly to cumulative counters)
- Histogram data points without sum aren't ingested. This happens when negative values are recorded.
- Histogram buckets are not sorted
- Histogram bucket boundary values of
NaN
orInfinite
are invalid.
The Dynatrace OpenTelemetry ingest API only returns an HTTP 400
when all metrics in the OTLP request are invalid.