Thanks Ben, it is clear now.
I will check if it makes sense to add a "metric-replay" feature in the
collector to monotonously export the on_change-type values.


On Tue, Jan 5, 2021 at 8:13 PM Ben Kochie <[email protected]> wrote:

>
>
> On Tue, Jan 5, 2021 at 5:36 PM Roman Dodin <[email protected]> wrote:
>
>> Thank you for your comments, Stuart, maybe I expressed myself a bit vague.
>> Let me be more precise and maybe then it will be easier to answer my
>> question.
>>
>> The metric I am talking about is the number of routes a network element
>> has in its routing table. This integer is reported to the collector only
>> when it's changed (i.e. a new route has been added to the table and now the
>> number of routes is X+1).
>> The collector receives the number of routes and exposes this metric for
>> Prometheus to scrape. Prometheus successfully scrapes this metric and
>> stores in TSDB.
>>
>> If no more routes are added to the system for a period T, no metrics will
>> be available for Prometheus to scrape, but at the same time, in my view, it
>> is not an event, it is a metric, it is just not periodically
>> reported, because there is no changes to it. We are reducing the amount of
>> data to transfer and store, by not sending the data that hasn't changed.
>>
>> I am curious, if that makes the original question clearer? Is it not
>> against the design to use Prometheus for such metrics and with this
>> particular scraping strategy?
>>
>
> Yes, it's more clear. This data behavior is incompatible with Prometheus
> due to the way stale data is handled. If a thing exists, it should continue
> to be exported even if it's not changing.
>
> Prometheus deals with this just fine, as it uses compression to store the
> data. In the case of non-changing values, the storage requirements are
> extremely trivial, on the order of a few bits.
>
> In fact, not repeating is almost no savings, as there is a minimum of 120
> samples stored in a 2 hour window.
>
> I suggest changing your exporter behavior to always produce the "current
> state of the world".
>
>
>>
>> On Tue, Jan 5, 2021 at 5:14 PM Stuart Clark <[email protected]>
>> wrote:
>>
>>> On 05/01/2021 15:35, Roman Dodin wrote:
>>>
>>> Hello community,
>>> I have a telemetry system that sends data into Prometheus when the data
>>> changes (i.e. its a push-on-event mechanism, not a sample/interval push)
>>> That means, if a system is stable, then the last reported value can be
>>> reported quite some time back.
>>>
>>> Let's say this metric is called "my_metric", how do I get its last
>>> reported value without specifying manually the timeframe to look back?
>>> So far I come up with the following query:
>>>
>>> my_metric{label="value"}[100y]
>>>
>>> Is this the only way to get the last value of a series, or maybe there
>>> is another alternative?
>>>
>>> Prometheus is designed to be used as a scrape (pull) system where
>>> metrics are regularly fetched and their values recorded in the TSDB (even
>>> if they haven't changed). As a result of this and metric that doesn't have
>>> a recent value is seen as "stale" and isn't returned when doing instant
>>> queries. The default setting is 5 minutes, which leads to the generally
>>> suggested maximum scrape interval of 2 minutes (to allow for a single
>>> scrape failure without the series being marked as stale).
>>>
>>> I'm not sure how you are pushing events into Prometheus, but it sounds
>>> like you are working against the design of the system. Additionally
>>> Prometheus is a metrics system rather than an event storage system.
>>>
>>> For event storage I would use a different database (possibly SQL based
>>> or a generic timeseries database) which would have no problems with the
>>> sort of queries you are wanting.
>>>
>> --
>> 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/CAFBEvLtEbUhutdYcBc58Zme7tCOT-nVacod2tAWPMuYq954w_Q%40mail.gmail.com
>> <https://groups.google.com/d/msgid/prometheus-users/CAFBEvLtEbUhutdYcBc58Zme7tCOT-nVacod2tAWPMuYq954w_Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/CAFBEvLtr25Bak%3D-7fpzszAY4KOW8Zt8PUS-ZahgY2rv4LAXOUg%40mail.gmail.com.

Reply via email to