Distributed Tracing mit Grafana Tempo
Schlanke Verfolgungsjagd
Um zahlreiche Microservices debuggen zu können, muss man ihr Zusammenspiel beobachten. Dabei fallen schnell große Mengen Trace-Daten an, die das noch junge Grafana Tempo zügig in einen Object Store wegschreibt und dort durchsucht.
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.