feat(monitor): restore Grafana to SPM docker-compose example (ADR-007 Step 1)#8215
Conversation
Adds Grafana 11.6.0 to the docker-compose/monitor stack so operators can immediately visualize Jaeger mixin metrics without any extra setup: - Add grafana service to docker-compose.yml mounting dashboard-for-grafana.json directly from its canonical location (monitoring/jaeger-mixin/) - Move orphaned datasource.yml to correct provisioning path: grafana/provisioning/datasources/prometheus.yml - Add dashboard provider config: grafana/provisioning/dashboards/default.yml - Remove the now-relocated datasource.yml from docker-compose/monitor root - Update README.md to mention Grafana at http://localhost:3000 Anonymous access with Admin role is enabled for the local dev environment. Angular deprecation warnings are expected at this stage; the panel type migration (graph → timeseries via grafana-foundation-sdk) is tracked in a follow-up step per ADR-007. Relates to jaegertracing#5833 Signed-off-by: abhay1999 <abhaychaurasiya19@gmail.com>
There was a problem hiding this comment.
Pull request overview
This PR implements Step 1 of ADR-007 to restore Grafana to the SPM (Service Performance Monitoring) docker-compose example for live dashboard validation against Jaeger metrics. The changes establish a working baseline for the subsequent steps of the dashboard modernization plan.
Changes:
- Adds a Grafana 11.6.0 service to the docker-compose stack, mounting the Jaeger mixin dashboard directly from its canonical location in the monitoring directory
- Moves the orphaned
datasource.ymlto its correct Grafana provisioning path atgrafana/provisioning/datasources/prometheus.yml - Creates a new dashboard provider configuration to automatically load dashboards from the provisioning directory
- Updates the README with instructions for accessing Grafana at port 3000 with the pre-loaded Jaeger mixin dashboard
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| docker-compose/monitor/docker-compose.yml | Adds Grafana service with proper volume mounts, environment configuration for anonymous access, and dependency on Prometheus |
| docker-compose/monitor/grafana/provisioning/datasources/prometheus.yml | Configures Prometheus as the default datasource for Grafana metrics visualization |
| docker-compose/monitor/grafana/provisioning/dashboards/default.yml | Configures Grafana to load dashboards from the provisioning directory |
| docker-compose/monitor/datasource.yml | Removed - content relocated to correct provisioning path |
| docker-compose/monitor/README.md | Documents Grafana availability and explains the expected Angular deprecation warnings |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Claude wrote a good test plan, please execute it and provide screenshots |
|
Test plan executed against live data from Step 1: Grafana loads at http://localhost:3000 Step 2: Jaeger mixin dashboard loads and shows live data
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8215 +/- ##
==========================================
- Coverage 95.63% 95.61% -0.03%
==========================================
Files 319 319
Lines 16793 16793
==========================================
- Hits 16060 16056 -4
- Misses 579 582 +3
- Partials 154 155 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
CI Summary ReportMetrics Comparison❌ 36 metric change(s) detected View changed metricsmetrics_snapshot_cassandras_5.x_v004_e2e_auto metrics_snapshot_elasticsearch_8.x_e2e
Code Coverage✅ Coverage 96.8% (baseline 96.8%) ➡️ View CI run | View publish logs |
Step 1 (jaegertracing#8215) and Step 2a (jaegertracing#8216) are merged; mark them done. Step 3 (jaegertracing#8240) is in review. Update status from Proposed → In progress. Signed-off-by: Abhay Chaurasiya <abhay.chaurasiya2003@gmail.com>
Step 1 (jaegertracing#8215) and Step 2a (jaegertracing#8216) are merged; mark them done. Step 3 (jaegertracing#8240) is in review. Update status from Proposed → In progress. Signed-off-by: abhay1999 <abhaychaurasiya19@gmail.com>
Step 1 (jaegertracing#8215) and Step 2a (jaegertracing#8216) are merged; mark them done. Step 3 (jaegertracing#8240) is in review. Update status from Proposed → In progress. Signed-off-by: abhay1999 <abhaychaurasiya19@gmail.com>
…tep 3) (#8240) ## What this PR does Adds a CI lint step (Step 3 of ADR-007) that automatically verifies `monitoring/jaeger-mixin/dashboard-for-grafana.json` is in sync with its Go generator (`monitoring/jaeger-mixin/generate/main.go`) on every PR — preventing silent drift between the generator source and the committed JSON artifact. ## Changes - **`Makefile`**: adds a `lint-monitoring` target that generates the dashboard to a temp file, diffs against the committed JSON, and fails if they differ. Included in the top-level `lint` target. - **`.github/workflows/ci-lint-checks.yaml`**: runs `make lint-monitoring` in the existing `generated-files-check` job. - **`docs/adr/007-grafana-dashboards-modernization.md`**: marks all steps as ✅ implemented, status → `Implemented`. ## Context This completes **ADR-007** (Grafana Dashboard Modernization): | Step | PR | Status | |------|----|--------| | Step 1 — Restore Grafana to docker-compose | #8215 | ✅ Merged | | Step 2a — Go SDK dashboard generator | #8216 | ✅ Merged | | Step 2b — Cutover (remove Jsonnet, promote v2) | #8241 | ✅ Merged | | Step 3 — CI drift check (this PR) | #8240 | 🔄 Open | Resolves #5833 --------- Signed-off-by: abhay1999 <abhaychaurasiya19@gmail.com>


Summary
Implements Step 1 of ADR-007: Grafana Dashboard Modernization as directed by @yurishkuro in #5833.
Restores Grafana to the
docker-compose/monitor/SPM example so the existing mixin dashboard can be validated against live Jaeger metrics, and so subsequent steps (Go SDK migration, CI checks) have a working baseline to validate against.Changes
docker-compose/monitor/docker-compose.yml— addsgrafanaservice (Grafana 11.6.0) mountingmonitoring/jaeger-mixin/dashboard-for-grafana.jsondirectly from its canonical location (single source of truth, no copy)docker-compose/monitor/grafana/provisioning/datasources/prometheus.yml— moves the orphaneddatasource.ymlto its correct Grafana provisioning path (same content)docker-compose/monitor/grafana/provisioning/dashboards/default.yml— new dashboard provider configdocker-compose/monitor/datasource.yml— deleted (now at correct provisioning path)docker-compose/monitor/README.md— notes Grafana is available at http://localhost:3000 with the mixin dashboard pre-loadedAnonymous access with
Adminrole is enabled — no login prompt in this local dev environment. The:roflag prevents Grafana from writing back to the source file.Angular deprecation warnings are expected at this stage. Grafana 11.x is used intentionally — it is the last series with Angular support enabled by default. The panel type migration (
graph→timeseriesviagrafana-foundation-sdk) is Step 2 of the ADR.Test plan
docker compose upindocker-compose/monitor/Relates to #5833