Langsame Anfragen erkennen: Was ein p95-Wert im App-Monitoring wirklich aussagt
Wenn sich einzelne Kunden über lange Wartezeiten beschweren, beantwortet ein Durchschnittswert allein die entscheidende Frage nicht: Wie langsam sind die Anfragen am oberen Ende der Verteilung? Ein Perzentil kann dabei helfen. Beauftragen Sie aber nicht nur eine zusätzliche Zahl im Dashboard. Legen Sie fest, welche Anfragen sie umfasst, für welchen Zeitraum sie gilt und wie genau sie geschätzt wird.
Dieser Leitfaden behandelt technische Antwortzeiten einer Website oder Web-App. Er definiert weder eine vertragliche Verfügbarkeitszusage noch eine Methode zur Bewertung von Beschäftigten.
p95 ist eine Dauer, keine Erfolgsquote
Die Prometheus-Dokumentation zu Histogrammen und Summaries beschreibt das 95. Perzentil als die Anfragedauer, innerhalb derer 95 Prozent der berücksichtigten Anfragen bedient wurden. In einer Monitoring-Anzeige ist diese Größe je nach Messverfahren eine Schätzung.
Die Zahl beantwortet damit eine andere Frage als der Anteil der Anfragen, der eine vorher festgelegte Zeitgrenze einhält. Beim Perzentil wählen Sie die Position in der Verteilung und erhalten eine Dauer. Bei einer Zielgrenze legen Sie die Dauer fest und untersuchen den Anteil darunter. Beide Ansichten können nützlich sein, dürfen aber nicht dieselbe Beschriftung erhalten.
Ein p95-Wert ist außerdem keine Höchstdauer. Die langsamsten Anfragen können darüber liegen. Er belegt auch nicht, dass ein bestimmter Kunde seine gesamte Aufgabe innerhalb dieser Zeit erledigen konnte. Dafür müsste zunächst feststehen, welcher Teil des Ablaufs überhaupt gemessen wird.
Den Messabschnitt vor der Kennzahl festlegen
Meine Empfehlung für die Beauftragung: Beschreiben Sie Anfang und Ende einer Messung in Alltagssprache. Geht es um die Bearbeitung einer Anfrage auf dem Server oder um den vollständigen Ablauf vom Klick bis zur nutzbaren Bestätigung im Browser? Diese Messabschnitte sind nicht austauschbar.
Halten Sie außerdem fest, welche Vorgänge in derselben Verteilung landen. Eine kleine Statusabfrage und ein umfangreicher Export haben unterschiedliche Aufgaben. Eine gemeinsame Kurve kann für eine Gesamtübersicht vorgesehen sein; sie ersetzt nicht automatisch die getrennte Betrachtung eines langsamen geschäftskritischen Ablaufs.
Vereinbaren Sie den Umgang mit Fehlern, Zeitüberschreitungen und abgebrochenen Vorgängen. Werden nur erfolgreich abgeschlossene Anfragen erfasst, muss die Anzeige diesen Umfang benennen. Ausgeschlossene Fehler dürfen nicht als Beleg für eine schnelle und zuverlässige Anwendung verschwinden. Das ist eine vorgeschlagene Berichtsregel, keine hier überprüfte Eigenschaft einer bestehenden Installation.
Keine Gesamtzahl aus den p95-Werten einzelner Server bilden
Prometheus erläutert einen wichtigen Unterschied zwischen Messverfahren: Eine Summary kann vorberechnete Quantile aus dem überwachten Programm liefern. Diese lassen sich nicht zu einem Gesamtquantil mehrerer Instanzen zusammenfassen. Die Dokumentation warnt ausdrücklich davor, den Durchschnitt solcher vorberechneten Quantile als Gesamtwert zu verwenden.
Histogramme bewahren dagegen eine in Klassen aufgeteilte Verteilung. Damit kann eine passende Abfrage zunächst die Verteilungen zusammenführen und anschließend ein gemeinsames Quantil schätzen. Die Einzelheiten hängen unter anderem vom Histogrammtyp und den Klassengrenzen ab.
Fragen Sie deshalb bei mehreren Serverinstanzen nicht nur: „Gibt es p95?“ Fragen Sie: „Aus welchen Verteilungsdaten entsteht der gemeinsame Wert?“ Eine große Zahl über mehreren sauber aussehenden Einzelkurven ist noch kein Nachweis einer richtigen Zusammenfassung. Auch eine nach Anfragezahlen gewichtete Mischung fertiger Perzentilwerte ist kein Ersatz für die benötigte Verteilung.
Die Genauigkeit gehört zur Abnahme
Die Dokumentation stellt klar, dass Quantile geschätzt werden. Bei klassischen Histogrammen begrenzt die Breite der betreffenden Klasse die Genauigkeit; bei nativen Histogrammen spielt die konfigurierte Auflösung eine Rolle. Die dort beschriebenen Summaries haben wiederum andere Fehlermerkmale und vorab festgelegte Quantile beziehungsweise Zeitfenster.
Als Auftraggeber müssen Sie die Datenstruktur nicht selbst auswählen. Lassen Sie sich aber erklären, ob die gewählte Auflösung eine Entscheidung nahe Ihrer Zeitgrenze überhaupt sinnvoll unterstützt. Viele Nachkommastellen auf dem Bildschirm beseitigen keine grobe Eingangsmessung.
Vereinbaren Sie außerdem eine verständliche Anzeige für fehlende Messungen und wenig Verkehr. Ohne passende Beobachtungen ist „keine belastbare Auswertung“ ehrlicher als eine scheinbar gemessene Dauer von null. Den Zeitraum und die Zahl der berücksichtigten Anfragen sollten Nutzer der Anzeige erkennen können. Das sind Anforderungen an Ihr geplantes Dashboard, keine universellen Prometheus-Voreinstellungen.
Was in den Testauftrag gehört
Nehmen Sie folgende Fälle in Ihre Akzeptanzkriterien für die Web-App auf:
- Ein kontrollierter Test enthält sowohl schnelle als auch deutlich langsamere Anfragen. Die Darstellung erklärt, welche Population das Perzentil beschreibt.
- Die Anzeige unterscheidet eine Perzentildauer vom Anteil unter einer vereinbarten Zeitgrenze.
- Bei mehreren Instanzen wird das Gesamtquantil aus geeigneten zusammengeführten Verteilungsdaten ermittelt, nicht aus gemittelten Einzelperzentilen.
- Zeitraum, Messabschnitt und Fehlerbehandlung sind dokumentiert. Ein Wechsel der Filter ändert nicht unbemerkt deren Bedeutung.
- Eine leere oder unvollständige Messperiode erscheint nicht als erfolgreich gemessener Nullwert.
- Der Entwickler erläutert die Schätzgenauigkeit und zeigt, wie sie zur vorgesehenen Entscheidung passt.
Bringen Sie den betroffenen Kundenablauf und die gewünschte Reaktion auf langsame Anfragen in die Planung Ihrer Business-App ein. Eine Kennzahl wird erst dann betrieblich brauchbar, wenn jemand weiß, was sie misst und welche Untersuchung sie auslösen soll. Die hier gelesene Prometheus-Referenz erklärt Messverfahren; sie beweist weder die Geschwindigkeit Ihrer App noch eine bereits eingerichtete Überwachung.