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
To facilitate aggregating native histogram metric over some labels, typically "user" / "tenant" in Mimir.
This is necessary as some Prometheus metrics start to support native histograms, Mimir wants to emit them per container (i.e. pod) and not per tenant of which there could be 100s, 1000s.
For example: prometheus_tsdb_compaction_duration_seconds of Prometheus is generated for every tenant inside Mimir ingester, but exposed via DSKIT metrics function as a sum of those in cortex_ingester_tsdb_compaction_duration_seconds .
Recently prometheus_tsdb_compaction_duration_seconds has acquired a native histogram version. See PR: prometheus/prometheus#13681
To be able to expose the aggregated native histogram dskit/metrics needs to support it.
Adding up native histograms is not as easy as the code for classic histograms. This is because native histograms can have different buckets, different resolution and/or zero threshold.
Task: implement accumulating native histograms information , that is implement adding up native histograms.
Scope: it is enough to consider integer native histograms where count, zero count are integers and only positive and negative deltas as utilized in the dto.
Suggested implementation: port the relevant code from prometheus to dskit, adopted to the data types used in dskit and restricted to integer values.
Note: the current code does not have protection against integer overflow , so this can be out of scope as first step. Later we might consider switching to storing the output in a float histogram - by default or as needed.
To facilitate aggregating native histogram metric over some labels, typically "user" / "tenant" in Mimir.
This is necessary as some Prometheus metrics start to support native histograms, Mimir wants to emit them per container (i.e. pod) and not per tenant of which there could be 100s, 1000s.
For example:
prometheus_tsdb_compaction_duration_seconds
of Prometheus is generated for every tenant inside Mimir ingester, but exposed via DSKIT metrics function as a sum of those incortex_ingester_tsdb_compaction_duration_seconds
.Recently
prometheus_tsdb_compaction_duration_seconds
has acquired a native histogram version. See PR: prometheus/prometheus#13681To be able to expose the aggregated native histogram dskit/metrics needs to support it.
Adding up native histograms is not as easy as the code for classic histograms. This is because native histograms can have different buckets, different resolution and/or zero threshold.
Task: implement accumulating native histograms information , that is implement adding up native histograms.
Scope: it is enough to consider integer native histograms where count, zero count are integers and only positive and negative deltas as utilized in the dto.
Suggested implementation: port the relevant code from prometheus to dskit, adopted to the data types used in dskit and restricted to integer values.
Note: the current code does not have protection against integer overflow , so this can be out of scope as first step. Later we might consider switching to storing the output in a float histogram - by default or as needed.
Part of the work in grafana/mimir#5020
The text was updated successfully, but these errors were encountered: