Thank you so much Julius! I think this solution works great. Just what I 
was looking for with recording rules.

On Monday, January 29, 2024 at 10:11:12 AM UTC-8 Julius Volz wrote:

> The buckets are differentiated via an "le" label (at least for the 
> cumulative histogram variant, for a non-cumulative one you can make up your 
> own bucket upper/lower bound label names), and time series are identified 
> by their metric name and label set. So the recording rules for the 
> different buckets wouldn't overwrite each other's time series.
>
> On Wed, Jan 24, 2024 at 10:50 PM 'Suki Sahota' via Prometheus Users <
> [email protected]> wrote:
>
>> I like your approach Julius. But I have a question about all of the 
>> buckets that I create. If I create all of the buckets with the same output 
>> metric name, will each bucket overwrite the previous buckets? If not, will 
>> the output metric name now be a histogram that contains all of the buckets? 
>> Thanks for your reply!
>>
>> On Wednesday, January 24, 2024 at 8:03:03 AM UTC-8 Julius Volz wrote:
>>
>>> 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/517249f0-e960-4f68-9e1f-15895b8f218an%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/prometheus-users/517249f0-e960-4f68-9e1f-15895b8f218an%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/68d3ee84-2f53-489f-a27a-676918867602n%40googlegroups.com.

Reply via email to