7.5 Deploy Observability Stack (Collector + VictoriaMetrics + Grafana)
Sprint Key: 7-5-deploy-observability-stack-collector-victoriametrics-grafana
Epic: 7
PRD: testing-framework
Story 7.5: Deploy Observability Stack (Collector + VictoriaMetrics + Grafana)
Status: ready-for-dev
Story
As a developer, I want an OTel Collector, VictoriaMetrics, and Grafana deployed alongside the application, so that telemetry data is collected, stored, and visualized without external SaaS dependencies.
Acceptance Criteria
- OTel Collector service in docker-compose (OTLP HTTP on 4318)
- VictoriaMetrics service with configurable retention (default 30d)
- Grafana service with auto-provisioned VictoriaMetrics datasource
- Pre-configured Service Health dashboard (req rate, error rate, latency percentiles)
- Pre-configured RAG Pipeline Trace Waterfall dashboard
- Collector healthcheck endpoint configured
- Grafana internal-only access (not exposed via nginx)
- Grafana authentication from .env credentials
- Disabled by default (ENABLE_OBSERVABILITY=true to enable)
- Network isolation (genieai_network only)
- Ansible support (enable_observability var + env.j2 template)
- Env template updated (Section 12C)
- OTel Collector config file (configs/otel/)
- Grafana provisioning files (configs/grafana/provisioning/)
- Docker Compose up works with --profile observability
- Docker Swarm works with ENABLE_OBSERVABILITY=1
- Existing services unaffected
- All existing CI tests pass