I had this in my queue for a long time, finally got to it!

We typically write proposals for new things such as features or
modifications but perhaps we could write a proposal for the deprecation of
classic histograms and lay out the different strategies for getting there?

Regards

El mié, 12 jun 2024 a las 15:33, Bjoern Rabenstein (<[email protected]>)
escribió:

> Here is my idea for a deprecation plan:
>
> 1. On the server side, including PromQL:
>
> A future PromQL server should still be able to recognize classic
> histograms when scraped, but only to convert them to native histograms
> with custom buckets (NHCB). From that point on (storage, query, remote
> write), it shoud have no notion of classic histograms anymore.
>
> This is also a reason why I think a "reverse transparency" layer to
> query NHCB as if they were classic histograms is undesirable. We want
> to get rid of the query patterns for classic histograms. (Another
> reason is that it will be really hard to implement such a "reverse
> transparency" layer reliably.)
>
>
> 2. On the instrumentation side, including exposition formats:
>
> In direct instrumentation, if you need a histogram, you should default
> to a native histogram with a standard exponential schema (which
> guarantees mergeability across time and space and is compatible with
> OTel's eponential histogram). Only if you need custom bucket
> boundaries for some reason, you should use an NHCB. Generally, I think
> the libraries can even keep their existing API for that. If you
> instrument a histogram in the classic way, the API doesn't actually
> tell you that this will result in a classic histogram. It just asks
> you for the bucket boundaries, and then you call `Observe` as you do
> for a native histogram, too. Hence, future libraries can just expose
> an NHCB in that case.
>
> If you translate a histogram from a 3rd party source, you use a
> suitable flavor of native histograms as the translation target. In the
> unlikely case that the source histogram fits the exponential bucketing
> schema, use a regular exponential native histogram. For specific types
> of 3rd party histograms (e.g. DDSketch, but there are many more), we
> might implement additional schemas of native histograms that directly
> accommodate them. And finally, if nothing else fits, you do NHCB.
>
> The exposition formats of the future should be able to represent all
> flavors of native histograms, so that we don't need to expose classic
> histograms anymore.
>
> _However_, the existing Prometheus exposition formats are so
> ubiquitious by now, that I don't think they will ever die. For as long
> as technically feasible, Prometheus servers should be able to
> understand old exposition formats. Which circles back to the very
> beginning: Any Prometheus server should still understand classic
> histograms, but convert them into NHCB on scrape.
>
> --
> Björn Rabenstein
> [PGP-ID] 0x851C3DA17D748D03
> [email] [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prometheus Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/prometheus-developers/Zmmjs%2BQen6u7brfz%40mail.rabenste.in
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-developers/CAO0Y1hfM%2B%3DkRcnA%3D1Uoj6z40zgGULBQi4WLGh9W6DDStL1wcSg%40mail.gmail.com.

Reply via email to