Wir zeigen eine Zeitreihe mit sum(increase(foo_requests_total[1m]))
, um die Anzahl der foo Anfragen pro Minute anzuzeigen. Anfragen kommen nur sporadisch - nur ein paar Anfragen pro Tag. Der Wert, der in der Grafik angezeigt wird, ist immer 1.3333. Warum ist der Wert nicht 1? Während dieser Minute gab es eine Anfrage.Warum gibt die Erhöhung() einen Wert von 1,33 in Prometheus zurück?
5
A
Antwort
7
Die Herausforderung, diese Zahl mit der Berechnung ist, dass wir ein paar Datenpunkte innerhalb eines Zeitbereiches nur haben, und sie sind in der Regel nicht auf dem exakten Beginn und am Ende des Zeitbereiches (1 Minute hier) sein . Was machen wir mit der Zeit zwischen dem Start des Zeitbereichs und dem ersten Datenpunkt, ähnlich dem letzten Datenpunkt und dem Ende des Bereichs?
Wir machen ein wenig Extrapolation, um dies auszugleichen und das korrekte Ergebnis in Aggregat zu erzeugen. Bei sehr langsam laufenden Zählern kann dies zu Artefakten führen.
Was wäre der richtige Weg, um alle einzelnen Ereignisse eines solchen langsam laufenden Zählers grafisch darzustellen? – James
Danke für die Erklärung btw ... – James
Was Sie tun, ist richtig. Wenn Sie eine genauere Antwort wünschen, würde ich vorschlagen, entweder die Rate über einen viel längeren Zeitrahmen zu nehmen oder Protokolle (z. B. den ELK-Stapel) abzuarbeiten, anstatt Metriken für diesen bestimmten Graphen. –