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 <
[email protected]> 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 [email protected].
> 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 [email protected].
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