Docker Compose sandbox that simulates a typical internet-company microservices architecture, with injectable faults and recorded ground-truth answers, used to train and evaluate an SRE/RCA (root-cause-analysis) troubleshooting agent.
spring-petclinic-microservices(fork) — business services (Customers/Vets/Visits/Gateway), modified with chaos togglesops-agent-toolkit-mcp— MCP tool server the agent uses to query this environment (logs, metrics, traces, service health/config)
Frontend → API Gateway → Customers / Vets / Visits (Java, Spring Boot)
│
Consul (discovery + config KV)
PostgreSQL, Redis
Prometheus + Grafana, Loki, Jaeger
See ROADMAP.md for the full phased plan, component rationale, and architecture diagrams.
git clone <this-repo>
cd lab-environment
./scripts/build.sh # build service images from the petclinic fork
docker-compose up -d
./scripts/init-consul-kv.sh # seed base config — Consul runs in -dev mode, non-persistentThen open:
| Service | URL |
|---|---|
| App | http://localhost:180 |
| Grafana | http://localhost:3100 |
| Jaeger | http://localhost:16786 |
| Consul | http://localhost:8600 |
./scripts/inject-chaos.sh redis_connection_timeoutScenarios and their ground truth are defined in scenarios/scenarios.yaml.
./scripts/run-eval.shRuns every scenario in sequence, triggers the agent, and scores its conclusion against ground truth. Results land in eval/results/.
docker-compose down -vSee ROADMAP.md.