On Tue, Dec 22, 2020 at 3:10 PM William Dauchy <wdau...@gmail.com> wrote:
> > But in addition, it only uses the field for prometheus and not
> > for the rest of the stats, making a special case in the stats for
> > prometheus, which I don't like much.
> > So given that the version and release dates were already present there,
> > why not just add a new compiler_version field, fill it with the missing
> > info so that the consumer has all 3 info available ?
>
> I understand your comment; however from prometheus point of view, it
> is not so nice:
> My patch was producing something like:
>
> # HELP haproxy_process_build_info HAProxy build info.
> # TYPE haproxy_process_build_info gauge
> haproxy_process_build_info{version="2.4-dev4-7a58a2-1",releasedate="2020/12/22",gccversion="10.2.1
> 20201207"} 1
>
> And you propose to have:
> haproxy_process_version{version="2.4-dev4-7a58a2-1"} 1
> haproxy_process_relase_date{releasedate="2020/12/22"} 1
> haproxy_process_compiler_version{gccversion="10.2.1 20201207"} 1
>
> I understand it creates two different ways to handle that information
> but from a prometheus point of view, this is not the recommended way
> to do those things. With our current implementation there is no easy
> way to gather those 3 values within a single metric.

What do we conclude here? Christopher, any thoughts about it?

> > By the way I just had a look at the dump function in prometheus, I
> > don't understand why it's reimplenting all the info filling by itself.
> > We could seriously simplify things by calling stats_fill_info() once,
> > then iterating over all the metrics, possibly performing adjustments
> > for the rare ones that require an exception. What I'm seeing is that
> > they use different names but we could possibly extend the struct
> > associating the names and descriptions to make them match the two use
> > cases. I hate to see that new fields are added to the global stats
> > from time to time and that they don't show up in prometheus because
> > the work has to be done there again. Otherwise if we want to keep it
> > distinct, it must not use the current stats definitions. But that's
> > more of a mid-term cleanup that is not directly related to your patch,
> > though it certainly is the reason why it causes a colatteral impact
> > on the stats.
>
> I agree the double implementation makes it error prone but I did not
> look in more details in the implementation to see how we could
> possibly simplify those things. As stated above, there are potentially
> a few things which are different because of labels, and maybe the
> conclusion is indeed to decorrelate the two stats lists.

-- 
William

Reply via email to