Skip to content

feat(monitor): restore Grafana to SPM docker-compose example (ADR-007 Step 1)#8215

Merged
yurishkuro merged 1 commit intojaegertracing:mainfrom
abhay1999:feat/restore-grafana-spm-docker-compose
Mar 21, 2026
Merged

feat(monitor): restore Grafana to SPM docker-compose example (ADR-007 Step 1)#8215
yurishkuro merged 1 commit intojaegertracing:mainfrom
abhay1999:feat/restore-grafana-spm-docker-compose

Conversation

@abhay1999
Copy link
Copy Markdown
Contributor

@abhay1999 abhay1999 commented Mar 21, 2026

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 — adds grafana service (Grafana 11.6.0) mounting monitoring/jaeger-mixin/dashboard-for-grafana.json directly from its canonical location (single source of truth, no copy)
  • docker-compose/monitor/grafana/provisioning/datasources/prometheus.yml — moves the orphaned datasource.yml to its correct Grafana provisioning path (same content)
  • docker-compose/monitor/grafana/provisioning/dashboards/default.yml — new dashboard provider config
  • docker-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-loaded

Anonymous access with Admin role is enabled — no login prompt in this local dev environment. The :ro flag 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 (graphtimeseries via grafana-foundation-sdk) is Step 2 of the ADR.

Test plan

  • docker compose up in docker-compose/monitor/
  • Confirm Grafana loads at http://localhost:3000 with no login required
  • Confirm "Jaeger" mixin dashboard is pre-provisioned and panels show data after ~2 minutes of microsim traffic
  • Confirm Angular deprecation warnings appear (expected — will be fixed in Step 2)

Relates to #5833

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>
@abhay1999 abhay1999 requested a review from a team as a code owner March 21, 2026 01:39
Copilot AI review requested due to automatic review settings March 21, 2026 01:39
@dosubot dosubot bot added docker Pull requests that update Docker code enhancement labels Mar 21, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.yml to its correct Grafana provisioning path at grafana/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.

@yurishkuro
Copy link
Copy Markdown
Member

Claude wrote a good test plan, please execute it and provide screenshots

@github-actions github-actions bot added the waiting-for-author PR is waiting for author to respond to maintainer's comments label Mar 21, 2026
@abhay1999
Copy link
Copy Markdown
Contributor Author

abhay1999 commented Mar 21, 2026

Test plan executed against live data from docker compose up in docker-compose/monitor/.

Step 1: Grafana loads at http://localhost:3000
Dashboard list shows "Jaeger v2" pre-provisioned — no manual import needed.

Step 2: Jaeger mixin dashboard loads and shows live data
Panels receiving metrics from microsim-generated traces via Prometheus:

  • Span Ingest Rate: ~100 spans/sec (success, 0 errors)
image image
    • Span Export Rate: ~100 spans/sec (success, 0 errors)
    • % Spans Refused: 0% (all accepted)
    • Export Success Rate: 100%
      Step 3: Angular deprecation warnings
      Angular deprecation warnings are visible on graph panels as expected — this is intentional at this stage (Grafana 11.6.0). Will be resolved in Step 2 when migrating to grafana-foundation-sdk.

@github-actions github-actions bot removed the waiting-for-author PR is waiting for author to respond to maintainer's comments label Mar 21, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.61%. Comparing base (c3164c3) to head (0a2a35a).
⚠️ Report is 1 commits behind head on main.

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     
Flag Coverage Δ
badger_direct 9.05% <ø> (ø)
badger_e2e 1.04% <ø> (ø)
cassandra-4.x-direct-manual 13.25% <ø> (ø)
cassandra-4.x-e2e-auto 1.03% <ø> (ø)
cassandra-4.x-e2e-manual 1.03% <ø> (ø)
cassandra-5.x-direct-manual 13.25% <ø> (ø)
cassandra-5.x-e2e-auto 1.03% <ø> (ø)
cassandra-5.x-e2e-manual 1.03% <ø> (ø)
clickhouse 1.16% <ø> (ø)
elasticsearch-6.x-direct 16.83% <ø> (ø)
elasticsearch-7.x-direct 16.86% <ø> (ø)
elasticsearch-8.x-direct 17.01% <ø> (ø)
elasticsearch-8.x-e2e 1.04% <ø> (-0.05%) ⬇️
elasticsearch-9.x-e2e 1.04% <ø> (ø)
grpc_direct 7.79% <ø> (ø)
grpc_e2e 1.04% <ø> (ø)
kafka-3.x-v2 1.04% <ø> (ø)
memory_v2 1.04% <ø> (ø)
opensearch-1.x-direct 16.91% <ø> (ø)
opensearch-2.x-direct 16.91% <ø> (ø)
opensearch-2.x-e2e 1.04% <ø> (ø)
opensearch-3.x-e2e 1.04% <ø> (ø)
query 1.04% <ø> (ø)
tailsampling-processor 0.52% <ø> (ø)
unittests 94.30% <ø> (-0.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown

CI Summary Report

Metrics Comparison

❌ 36 metric change(s) detected

View changed metrics

metrics_snapshot_cassandras_5.x_v004_e2e_auto

metrics_snapshot_elasticsearch_8.x_e2e
3 added

  • jaeger_storage_latency_seconds
  • jaeger_storage_requests
  • rpc_server_call_duration_seconds

Code Coverage

✅ Coverage 96.8% (baseline 96.8%)

➡️ View CI run | View publish logs
2026-03-21 04:27:37 UTC

@yurishkuro yurishkuro disabled auto-merge March 21, 2026 04:29
@yurishkuro yurishkuro merged commit 4afa357 into jaegertracing:main Mar 21, 2026
69 of 75 checks passed
@abhay1999 abhay1999 deleted the feat/restore-grafana-spm-docker-compose branch March 21, 2026 04:41
abhay1999 added a commit to abhay1999/jaeger-fork that referenced this pull request Mar 24, 2026
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>
abhay1999 added a commit to abhay1999/jaeger-fork that referenced this pull request Mar 24, 2026
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>
abhay1999 added a commit to abhay1999/jaeger-fork that referenced this pull request Mar 25, 2026
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>
github-merge-queue bot pushed a commit that referenced this pull request Mar 25, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants