Hi,
I am currently creating some metrics for a legacy application. I cannot 
(sadly) change the code, I can only query the database to get some 
information about the state of the application. So I created a small "proxy 
application" which queries the database and exposes the results as 
prometheus metrics.

I have one query which returns me two values A and B which are two related 
object types. Over time, objects of type A will become B, so the metric 
here is a gauge.

Currently I'm exporting
object{type="A"} 123
object{type="B"} 456

My problem is that the object counts are only valid per day. So on the next 
day, I'll get values from A and B, but they are not related to the values 
of yesterday.

So when the value of A at 23:59 is 100, and at 00:02 it is 120, then it did 
not increase by 20, in fact it got is more like it turned to 0 at 00:00 and 
then increased to 120.

What I need:
I need an alert which fires if the value of A / B is under a threshold 
after 3:00 a.m. I also need to know the "end" values of each day to compare 
todays values with yesterdays and so on.

I tried to fullfill this by adding a "date" tag like this:

object{type="A", date="2020-10-01"} 123
object{type="B", date="2020-10-01"} 456

object{type="A", date="2020-10-02"} 10
object{type="B", date="2020-10-02"} 4
On each day change, I set the "old" metrics to 0.

So max_over_time(object{date!=""}[5d]) will give me a nice overview here.

However, the approach makes alerting hard as prometheus might fetch the 
wrong (zeroed) metrics. I solved this application wise by unregistering the 
old metrics.

All of this feels terribly wrong to be honest. Is there a better way to 
solve this?

Thanks in advance!

-- 
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/a33af96b-e4f8-4ff8-93b5-0b904e3aedd4n%40googlegroups.com.

Reply via email to