MCPcopy
hub / github.com/grafana/tempo

github.com/grafana/tempo @v3.0.2 sqlite

repository ↗ · DeepWiki ↗ · release v3.0.2 ↗
11,652 symbols 54,387 edges 879 files 2,180 documented · 19%
README

Tempo Logo

Latest Release License Docker Pulls Slack Community Forum Go Report Card

Grafana Tempo is an open source, easy-to-use, and high-scale distributed tracing backend. Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, and Loki.

Business value of distributed tracing

Distributed tracing helps teams quickly pinpoint performance issues and understand the flow of requests across services. The Traces Drilldown UI simplifies this process by offering a user-friendly interface to view and analyze trace data, making it easier to identify and resolve issues without needing to write complex queries.

Refer to Use traces to find solutions to learn more about how you can use distributed tracing to investigate and solve issues.

Traces Drilldown UI: A better way to get value from your tracing data

We are excited to introduce the Traces Drilldown (formerly Explore Traces) app as part of the Grafana Explore suite. This app provides a queryless and intuitive experience for analyzing tracing data, allowing teams to quickly identify performance issues, latency bottlenecks, and errors without needing to write complex queries or use TraceQL.

Key Features: - Intuitive Trace Analysis: Spot slow or error-prone traces with easy, point-and-click interactions. - RED Metrics Overview: Use Rate, Errors, and Duration metrics to highlight performance issues. - Automated Comparison: Identify problematic attributes with automatic trace comparison. - Simplified Visualizations: Access rich visual data without needing to construct TraceQL queries.

image

To learn more see the following links: - Traces Drilldown repo - Traces Drilldown documentation - Demo video

TraceQL

Tempo implements TraceQL, a traces-first query language inspired by LogQL and PromQL, which enables targeted queries or rich UI-driven analyses.

TraceQL metrics

TraceQL metrics is an experimental feature in Grafana Tempo that creates metrics from traces. Metric queries extend trace queries by applying a function to trace query results. This powerful feature allows for ad hoc aggregation of any existing TraceQL query by any dimension available in your traces, much in the same way that LogQL metric queries create metrics from logs.

Tempo is Jaeger, Zipkin, Kafka and OpenTelemetry compatible. It ingests batches in any of the mentioned formats, buffers them, and then writes them to Azure, GCS, S3, or local disk. As such, it's robust, cheap, and easy to operate.

Getting started with Tempo

Further reading

To learn more about Tempo, consult the following documents & talks:

Getting help

If you have any questions or feedback regarding Tempo:

  • Grafana Labs hosts a forum for Tempo. This is a great place to post questions and search for answers.
  • Ask a question on the Tempo Slack channel.
  • File an issue for bugs, issues and feature suggestions.
  • UI issues should be filed with Grafana.

OpenTelemetry

Tempo's receiver layer, wire format and storage format are all based directly on standards and code established by OpenTelemetry. We support open standards at Grafana!

Check out the Integration Guides to see examples of OpenTelemetry instrumentation with Tempo.

Other components

tempo-vulture

tempo-vulture is Tempo's bird themed consistency checking tool. It writes traces to Tempo and then queries them back in a variety of ways.

tempo-cli

tempo-cli is the place to put any utility functionality related to Tempo. See Documentation for more info.

License

Grafana Tempo is distributed under AGPL-3.0-only. For Apache-2.0 exceptions, see LICENSING.md.

Extension points exported contracts — how you extend this code

RawWriter (Interface)
RawWriter is a collection of methods to write data to tempodb backends [8 implementers]
tempodb/backend/raw.go
JobSharder (Interface)
JobSharder is used to determine if a particular job is owned by this process [10 implementers]
tempodb/blocklist/poller.go
Counter (Interface)
Counter https://prometheus.io/docs/concepts/metric_types/#counter [6 implementers]
modules/generator/registry/interface.go
AsyncRoundTripper (Interface)
Async Pipeline [22 implementers]
modules/frontend/pipeline/pipeline.go
TenantLister (Interface)
TenantLister provides the list of tenants known to the blocklist. storage.Store satisfies this interface. [6 implementers]
modules/backendscheduler/provider/retention.go
Predicate (Interface)
Predicate is a pushdown predicate that can be applied at the chunk, page, and value levels. [43 implementers]
pkg/parquetquery/predicates.go
GeneratorCodec (Interface)
GeneratorCodec is the interface used to convert data from Kafka records to the tempopb.PushSpansRequest expected by the [5 …
pkg/ingest/encoding.go
VersionedEncoding (Interface)
VersionedEncoding represents a backend block version, and the methods to read/write them. [4 implementers]
tempodb/encoding/versioned.go

Core symbols most depended-on inside this repo

NewStaticString
called by 1004
pkg/traceql/ast.go
Run
called by 907
cmd/tempo/app/app.go
NewAttribute
called by 874
pkg/traceql/ast.go
NewIntrinsic
called by 773
pkg/traceql/ast.go
Log
called by 580
cmd/tempo/app/server_service.go
Add
called by 570
modules/generator/registry/interface.go
Now
called by 463
cmd/tempo-vulture/validation.go
MustExtractFetchSpansRequestWithMetadata
called by 385
pkg/traceql/storage.go

Shape

Method 5,909
Function 4,195
Struct 1,136
Interface 206
TypeAlias 100
FuncType 74
Class 32

Languages

Go97%
TypeScript3%

Modules by API surface

pkg/tempopb/tempo.pb.go911 symbols
cmd/tempo-query/jaeger/storage_v1/storage.pb.go455 symbols
cmd/tempo/app/static/bootstrap-5.1.3.bundle.min.js334 symbols
pkg/tempopb/backendwork.pb.go267 symbols
pkg/traceql/engine_metrics.go156 symbols
pkg/parquetquery/predicates.gen.go156 symbols
pkg/tempopb/trace/v1/trace.pb.go154 symbols
pkg/tempopb/common/v1/common.pb.go136 symbols
tempodb/encoding/vparquet4/block_traceql.go123 symbols
pkg/traceql/ast.go122 symbols
tempodb/encoding/vparquet5/block_traceql.go121 symbols
pkg/parquetquery/iters.go118 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

4d63.com/gocheckcompilerdirectivesv1.3.0 · 1×
4d63.com/gochecknoglobalsv0.2.2 · 1×
cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.20.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/monitoringv1.24.3 · 1×
cloud.google.com/go/storagev1.62.1 · 1×
codeberg.org/chavacava/garifv0.2.0 · 1×
codeberg.org/polyfloyd/go-errorlintv1.9.0 · 1×

Datastores touched

postgresDatabase · 1 repos

For agents

$ claude mcp add tempo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact