Tracing
Tracing bedeutet, den Weg einer einzelnen Anfrage durch ein Computersystem lückenlos mitzuschreiben. Entwickler sehen dadurch, welcher Arbeitsschritt wie lange gedauert hat und an welcher Stelle etwas schiefgegangen ist.
Wenn du in einer App auf einen Knopf drückst, passiert im Hintergrund selten nur eine Sache. Deine Anfrage wandert oft durch ein Dutzend Programme, die auf verschiedenen Rechnern laufen. Tracing heißt: Das System schreibt für jede einzelne Anfrage genau mit, welchen Weg sie genommen hat. Für jeden Zwischenschritt wird festgehalten, wann er begann, wie lange er dauerte und ob er geklappt hat. Am Ende ergibt sich daraus eine Art Reiseprotokoll einer einzigen Anfrage. Genau dieses Protokoll nennt man einen Trace.
Warum ein Fehlerprotokoll allein nicht reicht
Früher schrieben Programme einfach Textzeilen in eine Datei, sogenannte Logs. Solange ein Programm allein auf einem Rechner lief, reichte das aus. Heute besteht ein Dienst wie ein Onlineshop aber aus vielen kleinen Programmen. Jedes davon schreibt seine eigenen Zeilen. Wenn eine Bestellung fehlschlägt, liegen die Hinweise verstreut in zwanzig Dateien.
Tracing löst genau dieses Problem. Jede Anfrage bekommt beim Eintritt ins System eine eindeutige Nummer. Diese Nummer wird an jedes beteiligte Programm weitergereicht. Danach lassen sich alle Einzelmeldungen wieder zu einer Geschichte zusammensetzen. Aus zwanzig unzusammenhängenden Dateien wird ein zusammenhängender Ablauf.
Der zweite Grund ist Geschwindigkeit. Nutzer merken, wenn eine Seite drei Sekunden lädt, aber niemand weiß auf Anhieb, warum. Ein Trace zeigt, dass zwei Sekunden davon eine einzige Datenbankabfrage verschlungen hat. Ohne diese Aufschlüsselung raten Entwickler nur. Große Anbieter begründen mit solchen Messungen, ob sich eine Optimierung überhaupt lohnt.
Spans, Eltern und Kinder
Ein Trace besteht aus vielen kleinen Bausteinen, die Spans heißen. Ein Span ist ein einzelner Arbeitsschritt mit Startzeit und Endzeit, etwa eine Datenbankabfrage. Spans können ineinander verschachtelt sein. Der Aufruf des Bezahldienstes ist dann das Elternteil, die Anfrage an die Bank das Kind. So entsteht ein Baum, der den Ablauf abbildet.
Damit das über Rechnergrenzen hinweg funktioniert, reicht jedes Programm die Trace-Nummer an das nächste weiter. Diese Weitergabe nennt man Kontextweitergabe. Ein verbreiteter Standard dafür heißt OpenTelemetry und wird von vielen Anbietern unterstützt. Dargestellt wird das Ergebnis meist als Balkendiagramm. Jeder Balken ist ein Span, seine Länge ist die Dauer.
Ein häufiger Irrtum: Tracing erfasse jede Anfrage. Bei Millionen Anfragen pro Minute wäre das viel zu teuer. Deshalb wird meist nur ein Bruchteil aufgezeichnet, etwa ein Prozent. Das nennt man Sampling. Fehlerhafte Anfragen werden dabei oft bevorzugt gespeichert.
Vom Rechenzentrum bis in den KI-Chatbot
Am sichtbarsten ist Tracing in großen Onlinediensten. Wenn ein Streamingdienst oder eine Bank ausfällt, suchen die Techniker die Ursache in solchen Aufzeichnungen. Firmen wie Datadog oder Grafana verdienen ihr Geld genau damit. In Börsenmeldungen taucht das Feld unter dem Sammelbegriff Observability auf, also Beobachtbarkeit von Systemen.
Seit dem Boom der Sprachmodelle hat Tracing ein zweites Zuhause gefunden. Ein KI-Assistent schlägt oft erst etwas nach, ruft dann ein Werkzeug auf und fragt das Modell mehrfach. Ohne Trace ist kaum nachvollziehbar, an welcher Stelle eine falsche Antwort entstand. Werkzeuge wie LangSmith zeichnen deshalb jede Zwischenfrage und jede Antwort auf. Sie zeigen zusätzlich die verbrauchten Kosten pro Schritt.
Für dich persönlich läuft das unsichtbar im Hintergrund. Trotzdem ist es der Grund, warum Störungen heute oft in Minuten statt in Tagen behoben werden. Wer später programmiert, begegnet dem Begriff spätestens beim ersten größeren Projekt.