7.5.4 Funktionen 3
Inhalt
Funktionen kombinieren
Funktionen lassen sich nicht nur einzeln anwenden, sondern auch beliebig kombinieren.
Als Beispiel berechnen wir zuerst die HTTP Request-Raten sämtlicher Time Series der prometheus_http_requests_total
Metrik:
rate(prometheus_http_requests_total[5m])
Im Resultat wirst du die Request-Raten für jeden handler
und status_code
sehen. Wenn wir die gesamte Rate aller handler und status_codes wissen möchten, können wir das Resultat nun noch mit sum()
zusammenzählen:
sum(
rate(prometheus_http_requests_total[5m])
)
Natürlich können wir auch hier wieder mithilfe des by()
Keywords nur bestimmte Labels aggregieren:
sum by(status_code) (
rate(prometheus_http_requests_total[5m])
)
Nun erhalten wir die Summe der Request-Raten pro status_code
.
⚠️ Die Reihenfolge der Funktionen ist in solchen Queries sehr wichtig. Wir müssen immer zuerst die
rate()
Funktion nutzen und erst im Anschluss summieren. Der Grund ist, dassrate()
im Gegensatz zusum()
mit counter resets umgehen kann.
Fazit
- Funktionen können kombiniert werden.
- Auch bei Kombinationen muss der Metric Typ (
Gauge
,Counter
usw.) berücksichtigt werden.
Mit diesen Anmerkungen schliessen wir das Kapitel 5. Im nächsten Kapitel schauen wir uns an, wie wir mit PromQL Alertrules definieren können.