Prometheus Metriken für bestimmte Zeiträume pro Tag auswerten

Von | 14. Mai 2024

Ich hab am Wochenende unsere Hausbewässerung aktiviert (so spät im Jahr wie noch nie), sie gießt zwischen 2 und 3 Uhr in der Nacht. Nachdem ich meinen Wasserverbrauch mit Grafana/Prometheus überwache/auswerte, lag nahe den Wasserverbrauch vom Gießen in der Nacht rauszurechnen. Daher habe ich mich mit der Berechnung von Metriken innerhalb von Zeiträumen beschäftigt. Rausgekommen ist folgendes:

sum(  
  sum_over_time(    
    (       
       increase(         
         esphome_sensor_value{sensor=~"ky-033|proximity",esphome="water",name="Total Pulses"}[1m] )          
         * scalar(hour() < bool 2 and hour() > bool 3)       
        ) [24h:1m] offset -24h     
     )  
 ) by (esphome)  

Wie ihr wisst, ist mein Sensor ein Counter, der die Liter einfach hochzählt. Der wichtige Teil ist also folgender: * scalar(hour() < bool 2 and hour() > bool 3) D.h. ich multipliziere die Metrik mit 0 außerhalb des Zeitraums und mit 1 innerhalb des Zeitraums. So bekomme ich die Werte nur in dem Zeitraum.

Verbessern kann man das noch mit hour()+minute()/60, dann kann man auch noch Minutengenau vergleichen.

Nachdem das „Problem“ öfters in Grafana Foren besprochen wurde, wollte ich das mal hier posten evtl. hilft Euch das auch.

VG Gerd

Angefügtes Bild - Keine Beschreibung festgelegt

PS: Ja unsere Bewässerung vergießt jede Nacht etwa einen m³ aber nachdem ich dank des Sensors endlich genau die Liter pro Minute wusste, konnte ich die einzelnen Wasserkreise nach Jahren endlich genau einstellen und unser Wasserverbrauch ist für die Größe des Gartens endlich kalkulierbar, absehbar und im Rahmen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.