Glossar
Observability
Auch: Beobachtbarkeit
Die Eigenschaft eines Systems, von außen erkennen zu lassen, was innen passiert, auch bei Fragen, die vorher niemand gestellt hat.
Der Unterschied zur klassischen Überwachung liegt in der Art der Frage. Überwachung beantwortet vorbereitete Fragen, etwa ob die Antwortzeit über einer Schwelle liegt. Beobachtbarkeit erlaubt neue Fragen im Nachhinein, etwa warum ausgerechnet Kunden aus einer Region seit gestern länger warten.
Getragen wird das von drei Arten von Daten: Kennzahlen, Protokollen und Ablaufverfolgung über Dienstgrenzen hinweg. Entscheidend ist, dass sie sich über eine gemeinsame Kennung verbinden lassen.
Diese Kennung ist der eigentliche Kern. Ein Vorgang bekommt beim Eintritt ins System eine Nummer, die über jeden Aufruf, jede Warteschlange und jeden Hintergrundprozess weitergereicht und in jede Protokollzeile geschrieben wird. Ohne sie hat man drei Datensammlungen, die nebeneinanderliegen, und im Ausfall drei Personen, die in verschiedenen Werkzeugen suchen.
Bei den Kennzahlen ist der Durchschnitt die häufigste Falle. Eine mittlere Antwortzeit von 200 Millisekunden kann bedeuten, dass alle 200 Millisekunden warten, oder dass neunzig Prozent in 50 Millisekunden bedient werden und zehn Prozent in zwei Sekunden. Nur der zweite Fall erzeugt Beschwerden, und nur Perzentile zeigen ihn. Gemessen wird deshalb auf dem 95. und 99. Perzentil, nicht auf dem Mittelwert.
Der zweite verbreitete Fehler ist, nur Technik zu messen. Prozessorlast und Speicherverbrauch sagen nichts darüber, ob Bestellungen durchgehen. Eine Kennzahl je Geschäftsvorgang, also abgeschlossene Bestellungen pro Minute oder erfolgreiche Zahlungen, erkennt einen Ausfall oft Minuten vor jeder technischen Schwelle, weil sie das misst, worauf es ankommt.
Protokolle gehören strukturiert, also als Datensatz mit Feldern statt als Fließtext. Der Unterschied wird beim ersten Vorfall sichtbar: Nach einem bestimmten Kunden in strukturierten Feldern zu filtern dauert Sekunden, in Freitext sucht man mit Mustern und findet die Hälfte.
Der Kostenpunkt ist real und wird unterschätzt. Vollständige Ablaufverfolgung bei hohem Verkehr erzeugt Datenmengen, die schnell teurer werden als die Systeme, die sie beobachten. Der übliche Ausweg ist Stichprobenbetrieb: alle Fehler und langsamen Vorgänge behalten, vom Rest ein kleiner Anteil. Das genügt für Diagnose, weil die interessanten Fälle gerade die abweichenden sind.
Woran Sie es erkennen
- Beim letzten Ausfall war unklar, welcher Dienst die Ursache war.
- Protokolle liegen an mehreren Orten und lassen sich nicht verbinden.
- Es gibt Kennzahlen zur Technik, aber keine zum Geschäftsvorgang.
- Die Bereitschaft klickt Alarme weg, weil die meisten nichts bedeuten.
- Antwortzeiten werden als Mittelwert berichtet.
Nicht zu verwechseln mit
- Monitoring
- Beantwortet vorbereitete Fragen mit Schwellen und Alarmen. Notwendig und nicht ausreichend: Es sagt, dass etwas nicht stimmt, nicht warum.
- APM
- Ein Produktzuschnitt, meist Ablaufverfolgung plus Kennzahlen aus der Anwendungssicht. Ein Werkzeug, das Beobachtbarkeit unterstützt, aber kein Ersatz für die Frage, welche Fragen beantwortbar sein sollen.
- SLO
- Ein Zielwert für die Zuverlässigkeit. Beobachtbarkeit liefert die Daten, mit denen man ihn messen und Verletzungen erklären kann.
Wann es trägt
- Mehrere Dienste sind an einem Vorgang beteiligt.
- Beim letzten Ausfall war unklar, wo die Ursache lag.
- Es gibt Zuverlässigkeitszusagen, die belegt werden müssen.
- Fehler treten nur bei bestimmten Kunden oder Datenkonstellationen auf.
Wann nicht
- Bei einer einzelnen kleinen Anwendung mit wenig Verkehr: dort reichen Protokolle und einfache Kennzahlen.
- Als Werkzeugkauf ohne die Frage, welche Fragen beantwortet werden sollen.
- Vollständige Ablaufverfolgung bei hohem Verkehr ohne Stichprobenbetrieb: das wird teurer als das beobachtete System.
Wie man rangeht
- Mit den Fragen des letzten Ausfalls anfangenWelche drei Fragen wollte man beantworten und konnte es nicht. Daraus ergibt sich, was erhoben werden muss, und nur das.
- Durchgehende Vorgangskennung einführenBeim Eintritt vergeben, über Aufrufe, Warteschlangen und Hintergrundprozesse weiterreichen, in jede Protokollzeile schreiben. Alles Weitere hängt daran.
- Protokolle strukturierenFelder statt Fließtext, mit Kunde, Vorgang, Dauer und Ergebnis. Der Unterschied zeigt sich beim ersten Filtern unter Zeitdruck.
- Perzentile statt MittelwerteDas 95. und 99. Perzentil zeigen die Fälle, über die sich jemand beschwert. Der Durchschnitt verbirgt sie zuverlässig.
- Eine Geschäftskennzahl je AblaufBestellungen pro Minute, erfolgreiche Zahlungen, verarbeitete Belege. Sie erkennt Ausfälle früher als jede technische Schwelle.
- Nur alarmieren, was jemand nachts anfassen würdeAlarme ohne Handlung erziehen zum Wegklicken. Alles andere gehört in eine Ansicht, die morgens angesehen wird.
- Stichprobenbetrieb und Aufbewahrung festlegenFehler und langsame Vorgänge vollständig, vom Rest ein Anteil. Zwei Wochen im schnellen Zugriff, älteres in günstigen Speicher.
Häufig gefragt
Was brauche ich als Erstes, Kennzahlen oder Ablaufverfolgung?
Eine gemeinsame Kennung über alle Dienste hinweg. Ohne sie sind Protokolle und Kennzahlen zwei Datensammlungen, die niemand zusammenführen kann. Mit ihr lässt sich ein einzelner Vorgang durch das System verfolgen, und das beantwortet die meisten Fragen im Ausfall.
Wie hält man die Kosten im Griff?
Über drei Stellschrauben: Stichprobenbetrieb bei der Ablaufverfolgung, kurze Aufbewahrung im schnellen Zugriff mit Auslagerung in günstigen Speicher, und Zurückhaltung bei der Kardinalität. Eine Kennzahl mit der Kunden-ID als Merkmal erzeugt bei zehntausend Kunden zehntausend Zeitreihen, und genau das treibt die Rechnung.
Reichen Protokolle nicht?
Für eine einzelne Anwendung oft ja. Sobald mehrere Dienste an einem Vorgang beteiligt sind, beantworten Protokolle die Frage „wo ist die Zeit geblieben" nicht mehr, weil jeder Dienst nur seinen Ausschnitt kennt. Dafür ist die Ablaufverfolgung da.
Woran erkennt man, dass es funktioniert?
An der Zeit bis zur Ursache beim nächsten Vorfall. Wenn nach dem Ausbau immer noch drei Personen in drei Werkzeugen suchen und die Diagnose eine Stunde dauert, wurden Daten gesammelt, aber nicht verbunden. Das ist der übliche Zustand nach einem Werkzeugkauf ohne vorherige Frage.
