[Chore]: Upgrade Grafana 10.0.0 to 12.4.0 #99

Closed
opened 2026-02-05 23:36:11 +00:00 by egullickson · 2 comments
Owner

Parent Issue

Relates to #95

Summary

Upgrade Grafana from 10.0.0 to 12.4.0 (two major versions). This is the simplest of the logging stack upgrades - primarily an image version bump.

Note: Starting with 12.4.0, grafana/grafana-oss Docker Hub repo is deprecated. Use grafana/grafana instead (which is what we already use).

Files to Modify

1. docker-compose.yml (line 311)

Update image version:

# Before
image: ${REGISTRY_MIRRORS:-git.motovaultpro.com/egullickson/mirrors}/grafana/grafana:10.0.0
# After
image: ${REGISTRY_MIRRORS:-git.motovaultpro.com/egullickson/mirrors}/grafana/grafana:12.4.0

2. Verify config/grafana/datasources/loki.yml compatibility

The existing provisioning config should work unchanged:

apiVersion: 1
datasources:
  - name: Loki
    type: loki
    access: proxy
    url: http://mvp-loki:3100
    isDefault: true
    editable: false

Grafana 12.x still supports this provisioning format.

Existing Environment Variables (no change needed)

  • GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
  • GF_USERS_ALLOW_SIGN_UP=false

Acceptance Criteria

  • Grafana starts without errors on v12.4.0
  • Loki datasource auto-provisioned and functional
  • Log queries return results in Explore view
  • IP whitelist middleware still restricts access to RFC1918 ranges
  • Grafana healthcheck passes (/api/health endpoint)

Dependencies

  • Blocked by: Mirror script update (sub-issue 1)
  • Best done after Loki upgrade (sub-issue 3) so Loki datasource works
  • Independent of: Alloy migration, Python upgrade
## Parent Issue Relates to #95 ## Summary Upgrade Grafana from 10.0.0 to 12.4.0 (two major versions). This is the simplest of the logging stack upgrades - primarily an image version bump. **Note**: Starting with 12.4.0, `grafana/grafana-oss` Docker Hub repo is deprecated. Use `grafana/grafana` instead (which is what we already use). ## Files to Modify ### 1. `docker-compose.yml` (line 311) Update image version: ```yaml # Before image: ${REGISTRY_MIRRORS:-git.motovaultpro.com/egullickson/mirrors}/grafana/grafana:10.0.0 # After image: ${REGISTRY_MIRRORS:-git.motovaultpro.com/egullickson/mirrors}/grafana/grafana:12.4.0 ``` ### 2. Verify `config/grafana/datasources/loki.yml` compatibility The existing provisioning config should work unchanged: ```yaml apiVersion: 1 datasources: - name: Loki type: loki access: proxy url: http://mvp-loki:3100 isDefault: true editable: false ``` Grafana 12.x still supports this provisioning format. ## Existing Environment Variables (no change needed) - `GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}` - `GF_USERS_ALLOW_SIGN_UP=false` ## Acceptance Criteria - [ ] Grafana starts without errors on v12.4.0 - [ ] Loki datasource auto-provisioned and functional - [ ] Log queries return results in Explore view - [ ] IP whitelist middleware still restricts access to RFC1918 ranges - [ ] Grafana healthcheck passes (`/api/health` endpoint) ## Dependencies - Blocked by: Mirror script update (sub-issue 1) - Best done after Loki upgrade (sub-issue 3) so Loki datasource works - Independent of: Alloy migration, Python upgrade
egullickson added the
status
backlog
type
chore
labels 2026-02-05 23:36:34 +00:00
egullickson added
status
in-progress
and removed
status
backlog
labels 2026-02-06 01:35:22 +00:00
Author
Owner

Milestone: Grafana 10.0.0 to 12.4.0 Upgrade

Phase: Execution | Agent: Platform | Status: PASS

Changes Made

  • Updated docker-compose.yml line 320: grafana/grafana:10.0.0 -> grafana/grafana:12.4.0

Verification

  • Mirror script already references grafana/grafana:12.4.0 (committed in #96)
  • Loki datasource provisioning config (config/grafana/datasources/loki.yml) uses apiVersion: 1 format, fully compatible with Grafana 12.x - no changes needed
  • Existing environment variables (GF_SECURITY_ADMIN_PASSWORD, GF_USERS_ALLOW_SIGN_UP) unchanged
  • Healthcheck endpoint (/api/health) unchanged between versions
  • IP whitelist middleware (grafana-ipwhitelist@file) is Traefik-side, unaffected by Grafana version

Commit

09f8569 - chore: upgrade Grafana 10.0.0 to 12.4.0 (refs #99)

PR

Added to PR #102 with Fixes #99

Verdict: PASS | Next: Production validation after merge

## Milestone: Grafana 10.0.0 to 12.4.0 Upgrade **Phase**: Execution | **Agent**: Platform | **Status**: PASS ### Changes Made - Updated `docker-compose.yml` line 320: `grafana/grafana:10.0.0` -> `grafana/grafana:12.4.0` ### Verification - Mirror script already references `grafana/grafana:12.4.0` (committed in #96) - Loki datasource provisioning config (`config/grafana/datasources/loki.yml`) uses `apiVersion: 1` format, fully compatible with Grafana 12.x - no changes needed - Existing environment variables (`GF_SECURITY_ADMIN_PASSWORD`, `GF_USERS_ALLOW_SIGN_UP`) unchanged - Healthcheck endpoint (`/api/health`) unchanged between versions - IP whitelist middleware (`grafana-ipwhitelist@file`) is Traefik-side, unaffected by Grafana version ### Commit `09f8569` - `chore: upgrade Grafana 10.0.0 to 12.4.0 (refs #99)` ### PR Added to PR #102 with `Fixes #99` *Verdict*: PASS | *Next*: Production validation after merge
egullickson added
status
review
and removed
status
in-progress
labels 2026-02-06 01:36:31 +00:00
Author
Owner

QR Review: Post-Implementation Quality Review

Phase: Review | Agent: Quality | Status: PASS

RULE 0 (Production Reliability): No violations

  • Healthcheck (/api/health) confirmed compatible with Grafana 12.x
  • No security vulnerabilities introduced
  • No resource exhaustion risks
  • Grafana handles data volume migrations automatically on startup

RULE 1 (Project Conformance): No violations

  • Commit follows convention: chore: upgrade Grafana 10.0.0 to 12.4.0 (refs #99)
  • CI passes: npm run lint and npm run type-check both green
  • Mobile/desktop N/A (infrastructure change)

RULE 2 (Structural Quality): No violations

  • Single-line change, no dead code or duplication
  • No stale 10.0.0 Grafana references remain in codebase
  • Mirror script already updated in #96

Version Reference Audit

  • All 10.0.0 occurrences in codebase verified unrelated (npm packages, IP CIDRs, OCR deps)
  • Loki datasource provisioning (apiVersion: 1) compatible with Grafana 12.x
  • Environment variables (GF_SECURITY_ADMIN_PASSWORD, GF_USERS_ALLOW_SIGN_UP) unchanged
  • Traefik labels and IP whitelist middleware unaffected

Verdict: PASS | Next: Merge with PR #102

## QR Review: Post-Implementation Quality Review **Phase**: Review | **Agent**: Quality | **Status**: PASS ### RULE 0 (Production Reliability): No violations - Healthcheck (`/api/health`) confirmed compatible with Grafana 12.x - No security vulnerabilities introduced - No resource exhaustion risks - Grafana handles data volume migrations automatically on startup ### RULE 1 (Project Conformance): No violations - Commit follows convention: `chore: upgrade Grafana 10.0.0 to 12.4.0 (refs #99)` - CI passes: `npm run lint` and `npm run type-check` both green - Mobile/desktop N/A (infrastructure change) ### RULE 2 (Structural Quality): No violations - Single-line change, no dead code or duplication - No stale `10.0.0` Grafana references remain in codebase - Mirror script already updated in #96 ### Version Reference Audit - All `10.0.0` occurrences in codebase verified unrelated (npm packages, IP CIDRs, OCR deps) - Loki datasource provisioning (`apiVersion: 1`) compatible with Grafana 12.x - Environment variables (`GF_SECURITY_ADMIN_PASSWORD`, `GF_USERS_ALLOW_SIGN_UP`) unchanged - Traefik labels and IP whitelist middleware unaffected *Verdict*: PASS | *Next*: Merge with PR #102
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: egullickson/motovaultpro#99