Last modified October 7, 2025

Service graphs

Service graphs provide an automatic visual representation of your distributed system’s architecture, generated directly from your trace data. They show how services communicate, traffic patterns, and performance characteristics - giving you instant insight into your system’s topology without any additional configuration.

What are service graphs

Service graphs are automatically generated visualizations that show:

  • Service topology: How your services connect and depend on each other
  • Communication patterns: Request flows and traffic volume between services
  • Performance indicators: Response times and error rates for each interaction
  • System health: Visual indicators of service and connection health

The graphs are created automatically as Tempo processes your traces, analyzing span relationships to understand service dependencies.

How to access service graphs

  1. Navigate to Explore: Click the compass icon in Grafana’s left sidebar
  2. Select Tempo data source: Choose your Tempo data source from the dropdown
  3. Switch to Service Graph: Click the “Service Graph” tab at the top of the query interface
  4. View the graph: The service graph will automatically load showing your system’s topology

Service Graph in Grafana

Time range tip: Use longer time ranges (1+ hours) to see comprehensive service topology, or shorter ranges (15-30 minutes) for current service interactions.

Reading service graphs

Nodes (services)

Each circle represents a service, showing:

  • Service name: From the service.name attribute in traces
  • Color coding: Green (healthy), yellow (warnings), red (errors)
  • Request rate: Requests per second handled by the service

Edges (connections)

Arrows between services show:

  • Direction: Who calls whom
  • Thickness: Request volume (thicker = more traffic)
  • Color: Health status (red for high error rates)

Key metrics displayed

  • Request rates: Traffic volume between services
  • Error rates: Failed request percentages
  • Response times: Latency for service interactions

Common use cases

Identifying issues

  • Red nodes/edges: Services or connections with high error rates
  • Missing services: Services that should be present but aren’t showing up
  • Thick edges with slow response: High-traffic paths with performance issues
  • Isolated services: Services that aren’t communicating as expected

Understanding architecture

  • Hub services: Central services that many others depend on
  • Service chains: Long paths of service-to-service calls
  • External dependencies: Services that call external systems
  • Traffic patterns: Which services handle the most requests

Troubleshooting workflows

  1. Start with the service graph to get an overview of system health
  2. Identify problematic connections (red or slow edges)
  3. Click on connections to drill down to individual traces
  4. Use service names to filter logs and metrics for deeper analysis

Best practices

For better service graphs

  • Use consistent service names: Avoid including instance IDs or dynamic values
  • Instrument all service boundaries: Ensure traces capture all service-to-service calls
  • Include meaningful operation names: Help differentiate between different types of calls

For effective analysis

  • Start with recent time ranges for current system state
  • Use longer ranges to understand overall architecture and patterns
  • Combine with other data: Use service names to query metrics and logs

Next steps

To get the most value from service graphs:

For more information about Tempo’s service graph feature, see the Grafana Tempo documentation.