gitmyhub

tempo

Go ★ 5.3k updated 2d ago

Grafana Tempo is a high volume, minimal dependency distributed tracing backend.

Grafana Tempo is an open source system for storing and searching distributed traces. A distributed trace is a record of what happened when a user request moved through multiple services in an application, showing exactly how long each step took and where errors occurred. This kind of data is valuable for understanding why an application is slow or why requests are failing.

Tempo is designed to handle large volumes of trace data at low cost. It stores all traces in object storage such as Amazon S3, Google Cloud Storage, or Azure Blob Storage, which is inexpensive compared to traditional databases. It does not require a separate index or search database to operate, which keeps its infrastructure simple.

The system accepts trace data in several common formats, including OpenTelemetry (a widely adopted open standard), Jaeger, and Zipkin, so it can work with most existing tracing setups. Tempo also includes its own query language called TraceQL, which lets users search for specific traces or patterns across large datasets. An experimental feature allows TraceQL to generate metrics from trace data, so you can aggregate and chart trace information in ways usually reserved for metrics systems.

A companion visual interface called Traces Drilldown, built into Grafana, lets users explore trace data through point-and-click navigation without writing queries. It highlights slow requests, high error rates, and unusual patterns automatically.

Tempo is maintained by Grafana Labs and integrates with other Grafana products including Prometheus for metrics and Loki for logs. It is released under the AGPL-3.0 open source license.