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, dass rate() im Gegensatz zu sum() 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.

Zuletzt geändert March 11, 2025: fiy tpos (b06157f)