Dear Prometheans,
As you might know, we are busily working on implementing the new
sparse high-res histograms (commonly called “Sparse Histograms”).
Progress can be tracked in the `sparsehistogram` branch of various
repos:
-
https://github.com/prometheus/prometheus/tree/sparsehistogram
-
https://github.com/prometheus/client_golang/tree/sparsehistogram
-
https://github.com/prometheus/client_model/tree/sparsehistogram
We have a PoC implementation of instrumentation, ingestion, storing in
the TSDB, and (raw) retrieval from the TSDB.
We have “run it in production”, at least almost (it was just a dev
cluster, but it was close enough to the real world...), with very
promising results, to be presented at the upcoming PromCon by Ganesh
and Dieter, see
https://sched.co/mGK9 .
The missing piece of the puzzle is how to query Sparse Histograms with
PromQL and how to efficiently get the data over into graphing
frontends like Grafana to create awesome high-res heatmaps like the
one we hacked together and tweeted about:
https://twitter.com/_codesome/status/1414483704521498630
These last 1609.34m will be difficult to navigate, so I thought
perhaps I shouldn't start with a design doc but with an “exploratory
document”:
https://docs.google.com/document/d/1ch6ru8GKg03N02jRjYriurt-CZqUVY09evPg6yKTA1s/edit
This is not meant to suggest a particular solution, but to present the
options I see, in some detail, but not down to implementation level. I
hope it will seed a discussion, which might even add more options to
the pool, but should in any case inform us enough to then write a
proper design doc.
So please go ahead, read it and give feedback (comments are open for
everyone).
Thank you very much.
--
Björn Rabenstein
[PGP-ID] 0x851C3DA17D748D03
[email]
bjo...@rabenste.in