Skip to main content

Grafana

Visualization and dashboarding platform for metrics, logs, and traces.


Overview

Grafana provides unified observability dashboards with SSO integration.

PropertyValue
Imagegrafana/grafana:latest
Containergrafana
URLgrafana.ravenhelm.dev
Port3000 (internal)
Config~/ravenhelm/services/grafana/
DataPostgreSQL (grafana database)

Authentication

Grafana uses Zitadel SSO:

  • Login via "Sign in with Zitadel" button
  • Admin users assigned via Zitadel groups
  • Local admin account for emergency access

Data Sources

SourceTypeURL
PrometheusMetricshttp://prometheus:9090
LokiLogshttp://loki:3100
TempoTraceshttp://tempo:3200
PostgreSQLSQLpostgres:5432

Dashboards

Infrastructure

DashboardIDPurpose
Node Exporter1860Host system metrics
Docker893Container overview
Traefik17346Reverse proxy metrics

Databases

DashboardIDPurpose
PostgreSQL9628Database performance
Redis763Cache statistics

Quick Commands

# View logs
docker logs -f grafana

# Restart
docker restart grafana

# Reset admin password
docker exec grafana grafana-cli admin reset-admin-password <new-password>

Configuration

docker-compose.yml

services:
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
environment:
- GF_DATABASE_TYPE=postgres
- GF_DATABASE_HOST=postgres:5432
- GF_SERVER_ROOT_URL=https://grafana.ravenhelm.dev
- GF_AUTH_GENERIC_OAUTH_ENABLED=true
- GF_AUTH_GENERIC_OAUTH_NAME=Zitadel
volumes:
- ../../data/grafana:/var/lib/grafana
- ./provisioning:/etc/grafana/provisioning:ro
networks:
- ravenhelm_net

Provisioning

Dashboards and datasources are provisioned from config files:

services/grafana/provisioning/
├── dashboards/
│ └── dashboards.yml
└── datasources/
└── datasources.yml

Troubleshooting

Issue: SSO Login Fails

Symptoms: Zitadel login redirects but doesn't complete

Diagnosis:

docker logs grafana 2>&1 | grep -i oauth

Solutions:

  1. Verify Client ID/Secret in .env
  2. Check redirect URI in Zitadel matches
  3. Verify GF_SERVER_ROOT_URL is correct

Issue: Dashboard Not Loading

Symptoms: Dashboard shows "No data"

Diagnosis:

# Test data source
curl http://prometheus:9090/api/v1/query?query=up

Solutions:

  1. Check data source configuration
  2. Verify Prometheus is scraping targets
  3. Check time range selection