Thanks a lot Björn for the detailed response. I appreciate you taking the 
time. I also watched your talk from last year's PromCon and got a bit more 
context on what you have up your sleeve. In fact, I was reading the 
DDSketch paper last night. I can't wait to see what you will come up with 
and feel free to loop me in.

I do agree we should have a single solution that hopefully works for 
everyone and not one-off breaking changes. We will likely experiment with 
my implementation internally and see how it goes meanwhile.

Bashar

On Monday, June 22, 2020 at 2:09:56 PM UTC-7 [email protected] wrote:

> Hi Bashar,
>
> Thanks for your thoughts and ideas.
>
> I more or less agree with all of them, namely:
>
> - We need sparse histograms.
>
> - Cumulative buckets, despite some tactical advantages, are
> problematic for sparse histograms, while on the other hand a bit of
> math can always emulate dropping buckets or allow Apdex calculation.
>
> - We require a new type of histogram in the exposition format that is
> incompatible with the existing format.
>
> - A repetitive representation of buckets in the exposition format is
> problematic, and becomes more problematic with more buckets. And no,
> compression isn't solving that magically.
>
> I really want histograms to be cheap enogh so that they can be
> partioned at will (by status code, path, ...) while still maintaining
> a high resolution.
>
> Your approach goes several steps towards this goal.
>
> BUT (and here comes the big "but") it will not go far enough. What we
> need, even with sparse histograms, is a histogram implementation that
> is efficient enough to suppert hundreds of buckets in a single
> histogram at a cost that is comparable or even lower than we have to
> pay now for our existing ~10 bucket histograms. I expect that to
> require quite invasive changes not only to the exposition format but
> also to the way we store histograms in the TSDB and ultimately how we
> represent and process them in PromQL.
>
> Now you could say, why not iterate and slowly approach the goal. That
> would be totally fine with an experimental software, and I can only
> encourage you to play with your approach in an experimental fork. But
> we cannot really have those incremental changes in the mainline
> Prometheus releases as people will use them in production and then
> require backwads compatible support. We cannot really have dozens of
> mutually incompatibly ways of dealing with histograms in the released
> Prometheus components.
>
> That's why I've been experimenting for a while. I'm currently writing
> up a design doc suggesting a plan for the changes we need throughout
> the stack. It will not be a precise and perfect solution, but it will
> sketch out the direction along which we can then work together towards
> a solution. It will take a while before things have stabilized enough
> to have them in the regular Prometheus releases. And that's a shame
> because in the meantime, people are left with the existing solution
> for their production uses – or they can go down the path of adopting
> one of the experimental half-baked solution (of which there are more
> than just yours) to solve their most pressing problems, with the price
> of incompatibility with the future "proper" solution.
>
> I'm currently very focused on getting that design doc done because it
> will create the stage for further discussions and the foundation of an
> informed decision which way to go.
>
> Stay tuned, I'll publish it here on this list, hopefully very soon.
> -- 
> 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/224c3d68-c113-4c9c-8d66-1491a50263acn%40googlegroups.com.

Reply via email to