Grafana dashboard for OpenTelemetry services: visualize inbound and outbound RED metrics for HTTP and RPC calls as well as service logs and traces.
- Instrument services with OpenTelemetry SDK libraries and auto-instrumentation agents. Ensure the instrumentation produces:
- Traces
- Metrics: HTTP metrics, gRPC metrics, or Database Client Metrics
- Logs: optional
- Send generated telemetry (details in FAQ below):
- Traces to Grafana Tempo
- Metrics to a Prometheus database like Grafana Mimir
- Logs to Grafana Loki v3.0+ using the Loki OTLP/HTTP endpoint
- Ensure that a datasource is setup in Grafana for each of these Tempo, Prometheus, and Loki databases
- In Grafana, create the "OpenTelemetry Service" dashboard:
- Navigate to "Dashboards" then click on the "New / New dashboard" button
- Click on "Import a dashboard"
- On the "Import dashboard" screen, enter the ID
TODO
then click on the "Load" button
Dashboard mostly tested with the OpenTelemetry Instrumentation for Java, compatible with instrumentation that produce OpenTelemetry compliant traces, logs, HTTP metrics, gRPC metrics, or Database Client Metrics.
When using Grafana Cloud, follow the instructions of he Grafana Cloud documentation page OpenTelemetry > Send data to the Grafana Cloud OTLP endpoint.
Example OpenTelemetry Collector configuration to send to self managed instances of Tempo, Mimir, and Loki:
Replace tempo.example.com
, mimir.example.com
, and loki.example.com
by the desired host names.
For production deployments, enable TLS security and remove insecure: true
.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
exporters:
otlphttp/metrics:
endpoint: http://mimir.example.com:9090/api/v1/otlp
tls:
insecure: true
otlphttp/traces:
endpoint: http://tempo.example.com:4418
tls:
insecure: true
otlphttp/logs:
endpoint: http://loki.example.com:3100/otlp
tls:
insecure: true
debug/metrics:
verbosity: detailed
debug/traces:
verbosity: detailed
debug/logs:
verbosity: detailed
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/traces]
#exporters: [otlphttp/traces,debug/traces]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/metrics]
#exporters: [otlphttp/metrics,debug/metrics]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/logs]
#exporters: [otlphttp/logs,debug/logs]
TODO
Apache-2.0 license.