The Service Graph is a visual representation of the relationships between services.
Each node on the graph represents a service such as an API or database.
You use the Service Graph to detect performance issues; track increases in error, fault, or throttle rates in services; and investigate root causes by viewing corresponding traces.
{{<figuresrc="/media/docs/grafana/data-sources/tempo/query-editor/tempo-ds-query-node-graph.png"class="docs-image--no-shadow"max-width="500px"alt="Screenshot of a Node Graph">}}
1. [Configure Grafana Alloy](https://grafana.com/docs/tempo/<TEMPO_VERSION>/configuration/grafana-alloy/) or [Tempo or GET](https://grafana.com/docs/tempo/<TEMPO_VERSION>/metrics-generator/service_graphs/#tempo) to generate Service Graph data.
To open a context menu with additional links for quick navigation to other relevant information, click a service.
Numbers inside the circles indicate the average time per request and requests per second.
Each circle's color represents the percentage of requests in each state:
| Color | State |
| ---------- | ------------------- |
| **Green** | Success |
| **Red** | Fault |
| **Yellow** | Errors |
| **Purple** | Throttled responses |
## Open the Service Graph view
Service graph view displays a table of request rate, error rate, and duration metrics (RED) calculated from your incoming spans. It also includes a node graph view built from your spans.
{{<figuresrc="/media/docs/grafana/data-sources/tempo/query-editor/tempo-ds-query-service-graph.png"class="docs-image--no-shadow"max-width="500px"alt="Screenshot of the Service Graph view">}}
Grafana uses the `traces_spanmetrics_calls_total` metric to display the name, rate, and error rate columns, and `traces_spanmetrics_latency_bucket` to display the duration column.
These metrics must exist in your Prometheus data source.
To open a query in Prometheus with the span name of that row automatically set in the query, click a row in the **rate**, **error rate**, or **duration** columns.
