Skip to content

Grafana Tempo Quiz

Test your understanding of Grafana Tempo.


  1. What is the main characteristic of Grafana Tempo?
    • A) Indexes all data for fast searching
    • B) TraceID-based storage that eliminates indexing costs
    • C) Real-time streaming processing
    • D) Automatic anomaly detection
Show Answer

Answer: B) TraceID-based storage that eliminates indexing costs

Explanation: Tempo stores and searches trace data using only TraceID without indexing. This allows storing large-scale trace data at low cost. Other tracing systems index various fields to improve search performance, but this leads to increased storage costs.


  1. Which component in Tempo's architecture receives and validates trace data?
    • A) Ingester
    • B) Querier
    • C) Distributor
    • D) Compactor
Show Answer

Answer: C) Distributor

Explanation: The Distributor receives trace data in various formats (Jaeger, Zipkin, OTLP, etc.) and validates it. Validated data is distributed to appropriate Ingesters based on hashing. Ingesters buffer and store data, while Queriers handle searches.


  1. What is the correct TraceQL query to retrieve only error status spans?
    • A) { error = true }
    • B) { status = error }
    • C) { span.error = 1 }
    • D) { state = "ERROR" }
Show Answer

Answer: B) { status = error }

Explanation: In TraceQL, use the { status = error } syntax to filter error spans. The status field can have values of ok, error, or unset, which maps to OpenTelemetry's SpanStatus.


  1. What is the recommended AWS authentication method when using S3 as Tempo's backend storage?
    • A) Store Access Key in environment variables
    • B) Store credentials in Secret
    • C) IRSA (IAM Roles for Service Accounts)
    • D) EC2 Instance Profile
Show Answer

Answer: C) IRSA (IAM Roles for Service Accounts)

Explanation: IRSA is recommended in EKS environments. IRSA links IAM roles to Kubernetes ServiceAccounts, enabling fine-grained permission management at the Pod level. It's more secure than storing static credentials, and credential rotation is handled automatically.


  1. Which is NOT a metric type generated by Tempo's Metrics Generator?
    • A) Service Graph metrics
    • B) Span metrics
    • C) Log metrics
    • D) RED metrics (Rate, Error, Duration)
Show Answer

Answer: C) Log metrics

Explanation: Tempo's Metrics Generator generates Service Graph metrics and Span metrics (including RED metrics) from trace data. These metrics are sent to Prometheus and used for service map visualization and performance monitoring. Log metrics are generated by Loki and are outside Tempo's scope.


  1. What is the name of the feature in Tempo Distributed mode that maintains replicas across multiple Ingesters for data durability?
    • A) Sharding
    • B) Replication Factor
    • C) Partitioning
    • D) Mirroring
Show Answer

Answer: B) Replication Factor

Explanation: Replication Factor determines how many Ingesters each trace is replicated to. For example, replication_factor=3 means each trace is stored on 3 Ingesters, so there's no data loss even if one Ingester fails. This is an important setting for Tempo's high availability configuration.


  1. What configuration is needed to implement Trace-to-Log correlation by integrating Tempo and Loki in Grafana?
    • A) Deploy in the same namespace
    • B) Configure derivedFields to extract TraceID
    • C) Use the same S3 bucket
    • D) Use identical labels
Show Answer

Answer: B) Configure derivedFields to extract TraceID

Explanation: Configure derivedFields in the Loki data source settings to extract TraceID from logs and create links to Tempo. By matching TraceID with a regex pattern and linking it to the Tempo data source, you can query related traces directly from logs.


  1. What is the role of the Compactor in Tempo?
    • A) Real-time query processing
    • B) Receiving and distributing trace data
    • C) Compressing stored blocks and applying retention policies
    • D) Memory buffer management
Show Answer

Answer: C) Compressing stored blocks and applying retention policies

Explanation: The Compactor compresses and optimizes trace blocks stored in Object Storage. It also applies retention policies according to the block_retention setting to delete old data. The Compactor typically runs as a single instance, with only one active per cluster.


  1. What is the correct TraceQL query to find call patterns from Service A to Service B?
    • A) { resource.service.name = "A" } AND { resource.service.name = "B" }
    • B) { resource.service.name = "A" } >> { resource.service.name = "B" }
    • C) { resource.service.name = "A" } -> { resource.service.name = "B" }
    • D) { resource.service.name = "A" } | { resource.service.name = "B" }
Show Answer

Answer: B) { resource.service.name = "A" } >> { resource.service.name = "B" }

Explanation: In TraceQL, the >> operator performs structural matching to find cases where the span matching the first condition is an ancestor of the span matching the second condition. This allows analyzing call patterns between services. The > operator matches only direct parent-child relationships.


  1. Which is NOT a recommended setting for Tempo performance optimization?
    • A) Set max_block_duration to 30 minutes
    • B) Use Memcached as cache
    • C) Index all attributes
    • D) Enable query sharding in Query Frontend
Show Answer

Answer: C) Index all attributes

Explanation: Tempo's core design principle is to minimize indexing to reduce costs. Indexing all attributes would negate Tempo's advantages and significantly increase storage costs. Instead, optimize performance through max_block_duration tuning, caching, and query sharding.