For the histogram buckets, is your intention to have a few preconfigured
"age" buckets like 0s-15s, 0s-1m, 0s-5m, and so on (cumulative buckets, all
starting at 0, as in normal Prometheus histograms), and then a count for
how many timestamps you have that fall into each age bucket?

You could make one recording rule for *each bucket*, with all the recording
rules sharing the same output metric name. For example, for a bucket with a
range of 0s - 1m, you could have this kind of rule:

record: my_timestamp_age_bucket
expr: count(time() - my_timestamp_seconds <= 60)
labels:
  le: "60"

...and equivalently for the other buckets.

If you wanted to have a *non-cumulative* histogram (and don't need to use
histogram_quantile() on it), the rule would look like this (e.g. for a
bucket from 15s - 1m):

record: my_timestamp_age_bucket
expr: count(time() - my_timestamp_seconds > 15 <= 60)
labels:
  # some other label(s) here to designate your bucket range

Remember to include a catch-all bucket for very long durations with an
upper bound of +Inf, so you don't miss recording them.

Note that with the "count()" approach I use above, it will only create a
bucket time series for buckets with at least one timestamp falling into the
bucket, as otherwise "count()" will just return an empty result. If you
want to create a bucket with the value of "0" instead, you can append "or
vector(0)" to the rule expression:

record: my_timestamp_age_bucket
expr: count(time() - my_timestamp_seconds <= 60) or vector(0)
labels:
  le: "60"

On Mon, Jan 22, 2024 at 4:25 PM 'Suki Sahota' via Prometheus Users <
prometheus-users@googlegroups.com> wrote:

> I have a metric I'm collecting which is a gauge vector of timestamps. I'd
> like to take each one of those timestamps and subtract it from the time now
> and turn it into a histogram. Can I do this with recording rules?
>
> Right now I have a gauge vector of:
> <timestamp_1, timestamp_2, ..., timestamp_n>.
>
> I'd like a histogram of [timeNow - timestamp_i]. I'm specifically looking
> to use recording rules.
>
> Thanks, Suki
>
> --
> You received this message because you are subscribed to the Google Groups
> "Prometheus Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to prometheus-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/prometheus-users/d542aed9-56bf-4737-9720-775b4f27d03dn%40googlegroups.com
> <https://groups.google.com/d/msgid/prometheus-users/d542aed9-56bf-4737-9720-775b4f27d03dn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Julius Volz
PromLabs - promlabs.com

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to prometheus-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/CAObpH5yS%3D9NCCz_7bRKOPtXxhk-_qkGCLfhVtVkJ_4%3D4YcP2jw%40mail.gmail.com.

Reply via email to