Microservices: Distributed Tracing mit Grafana Tempo im Test

Grafana Tempo unterstützt das Debuggen von Microservices, da es große Mengen an Trace-Daten in einen Object Store verschiebt und dort durchsucht.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 5 Min.
Von
  • Tim Schürmann
Inhaltsverzeichnis

Microservices und andere verteilt arbeitende Systeme können zu äußerst komplexen Gebilden heranwachsen, was wiederum das Debugging, Profiling und Monitoring erschwert. Abhilfe schafft das sogenannte Distributed Tracing, das mithilfe spezieller Identifikationsnummern (der Tracing-IDs) die nacheinander aufgerufenen Microservices verfolgt und protokolliert. Zentrale Distributed-Tracing-Systeme wie Jaeger und Zipkin sammeln und verwalten die dabei entstehenden Trace-Daten.

Die Entwickler der Visualisierungsplattform Grafana waren mit dem von ihnen genutzten Tracing-System allerdings zunehmend unzufrieden. Kurzerhand erschufen sie eine eigene Lösung namens Grafana Tempo. Die Ende 2020 erstmals der Öffentlichkeit vorgestellte Software nimmt Trace-Daten entgegen und legt sie in einem Object Store ab. Dieser bietet gegenüber einer klassischen Datenbank den Vorteil, große Datenmengen schnell speichern und zudem in der Cloud flexibel wachsen zu können. Als mögliche Datenspeicher dienen derzeit Amazon S3, MinIO, Microsoft Azure, Google Cloud Storage (GCS) oder auch das lokale Dateisystem.

Die Zulieferung der Trace-Daten erfolgt über die offenen und etablierten Tracing-Protokolle von Jaeger, Zipkin und dem OpenTelemetry-Projekt. Damit lässt sich Tempo leicht in bestehende Infrastrukturen integrieren. Kommt beispielsweise bereits der Jaeger-Client zum Einsatz, kann die entsprechende Anwendung ihre Trace-Daten direkt an Tempo weiterreichen. Auf Wunsch komprimiert Tempo die eintrudelnden Daten mit einem bekannten Verfahren wie zstd oder gzip.