You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow primitive OTEL delta ingestion to be enabled (#11631)
Introduces the `-distributor.otel-native-delta-ingestion` flag
(and corresponding per-tenant setting), which enables primitive OTEL
delta metrics ingestion via the OTLP endpoint. This feature was
implemented in Prometheus in
prometheus/prometheus#16360. This PR allows
Mimir users to enable this feature too.
As per the Prometheus PR:
> This allows otlp metrics with delta temporality to be ingested and
stored as-is, with metric type unknown. To get "increase" or "rate",
`sum_over_time(metric[<interval>])` (`/ <interval>`) can be used.
> This is the first step towards implementing
prometheus/proposals#48. That proposal has
additional suggestions around type-aware functions and making the rate()
and increase() functions work for deltas too. However, there are some
questions around the best way to do querying over deltas, so having this
simple implementation without changing any PromQL functions allow us to
get some form of delta ingestion out there gather some feedback to
decide the best way to go further.
---------
Co-authored-by: Taylor C <41653732+tacole02@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,7 @@
36
36
*[FEATURE] Query-frontend: Allow use of Mimir Query Engine (MQE) via the experimental CLI flags `-query-frontend.query-engine` or `-query-frontend.enable-query-engine-fallback` or corresponding YAML. #11417#11775
37
37
*[FEATURE] Querier, query-frontend, ruler: Enable experimental support for duration expressions in PromQL, which are simple arithmetics on numbers in offset and range specification. #11344
38
38
*[FEATURE] You can configure Mimir to export traces in OTLP exposition format through the standard `OTEL_` environment variables. #11618
39
+
*[FEATURE] Distributor: Add experimental `-distributor.otel-native-delta-ingestion` option to allow primitive delta metrics ingestion via the OTLP endpoint. #11631
39
40
*[FEATURE] distributor: Allow configuring tenant-specific HA tracker failover timeouts. #11774
40
41
*[FEATURE] OTLP: Add experimental support for promoting OTel scope metadata (name, version, schema URL, attributes) to metric labels, prefixed with `otel_scope_`. Enable via the `-distributor.otel-promote-scope-metadata` flag. #11795
41
42
*[ENHANCEMENT] Ingester: Display user grace interval in the tenant list obtained through the `/ingester/tenants` endpoint. #11961
Copy file name to clipboardExpand all lines: cmd/mimir/config-descriptor.json
+11Lines changed: 11 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -5818,6 +5818,17 @@
5818
5818
"fieldType": "boolean",
5819
5819
"fieldCategory": "experimental"
5820
5820
},
5821
+
{
5822
+
"kind": "field",
5823
+
"name": "otel_native_delta_ingestion",
5824
+
"required": false,
5825
+
"desc": "Whether to enable native ingestion of delta OTLP metrics, which will store the raw delta sample values without conversion. If disabled, delta metrics will be rejected. Delta support is in an early stage of development. The ingestion and querying process is likely to change over time.",
Copy file name to clipboardExpand all lines: cmd/mimir/help-all.txt.tmpl
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1425,6 +1425,8 @@ Usage of ./cmd/mimir/mimir:
1425
1425
[experimental] Whether to keep identifying OTel resource attributes in the target_info metric on top of converting to job and instance labels.
1426
1426
-distributor.otel-metric-suffixes-enabled
1427
1427
Whether to enable automatic suffixes to names of metrics ingested through OTLP.
1428
+
-distributor.otel-native-delta-ingestion
1429
+
[experimental] Whether to enable native ingestion of delta OTLP metrics, which will store the raw delta sample values without conversion. If disabled, delta metrics will be rejected. Delta support is in an early stage of development. The ingestion and querying process is likely to change over time.
Copy file name to clipboardExpand all lines: docs/sources/mimir/configure/about-versioning.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,6 +115,8 @@ The following features are currently experimental:
115
115
-`-distributor.otel-convert-histograms-to-nhcb`
116
116
- Enable promotion of OTel scope metadata to metric labels
117
117
-`-distributor.otel-promote-scope-metadata`
118
+
- Enable native ingestion of delta OTLP metrics. This means storing the raw delta sample values without converting them to cumulative values and having the metric type set to "Unknown". Delta support is in an early stage of development. The ingestion and querying process is likely to change over time. You can find considerations around querying and gotchas in the [corresponding Prometheus documentation](https://prometheus.io/docs/prometheus/3.4/feature_flags/#otlp-native-delta-support).
f.BoolVar(&l.OTelKeepIdentifyingResourceAttributes, "distributor.otel-keep-identifying-resource-attributes", false, "Whether to keep identifying OTel resource attributes in the target_info metric on top of converting to job and instance labels.")
338
339
f.BoolVar(&l.OTelConvertHistogramsToNHCB, "distributor.otel-convert-histograms-to-nhcb", false, "Whether to convert OTel explicit histograms into native histograms with custom buckets.")
339
340
f.BoolVar(&l.OTelPromoteScopeMetadata, "distributor.otel-promote-scope-metadata", false, "Whether to promote OTel scope metadata (scope name, version, schema URL, attributes) to corresponding metric labels, prefixed with otel_scope_.")
341
+
f.BoolVar(&l.OTelNativeDeltaIngestion, "distributor.otel-native-delta-ingestion", false, "Whether to enable native ingestion of delta OTLP metrics, which will store the raw delta sample values without conversion. If disabled, delta metrics will be rejected. Delta support is in an early stage of development. The ingestion and querying process is likely to change over time.")
340
342
341
343
f.Var(&l.IngestionArtificialDelay, "distributor.ingestion-artificial-delay", "Target ingestion delay to apply to all tenants. If set to a non-zero value, the distributor will artificially delay ingestion time-frame by the specified duration by computing the difference between actual ingestion and the target. There is no delay on actual ingestion of samples, it is only the response back to the client.")
342
344
f.IntVar(&l.IngestionArtificialDelayConditionForTenantsWithLessThanMaxSeries, "distributor.ingestion-artificial-delay-condition-for-tenants-with-less-than-max-series", 0, "Condition to select tenants for which -distributor.ingestion-artificial-delay-duration-for-tenants-with-less-than-max-series should be applied.")
0 commit comments