version: '2' services: # Go Carbon (Carbon replacement) # Takes care of writing metrics to database and data retention carbon: image: carbon:v1 build: dockerfile: Carbon.dockerfile context: . ports: - '2003:2003/udp' - '2004:2004/udp' - '7002:7002' volumes: - /data/graphite/whisper:/data/graphite/whisper - /graphite-config # Brubeck (StatsD replacement) # Aggregates metrics before sending them to Carbon brubeck: image: brubeck:v1 build: dockerfile: Brubeck.dockerfile context: . ports: - '8090:8090' - '8126:8126/udp' - '9126:9126/udp' depends_on: - carbon # Graphite API (yep, almost original Graphite Web) # Provides API for reading metrics graphite-api: image: brutasse/graphite-api:latest build: context: https://github.com/brutasse/graphite-api.git environment: BIND_ADDRESS: 0.0.0.0 PORT: 8000 GRAPHITE_API_CONFIG: /graphite-config/graphite-api.yml ports: - '8080:8000' volumes_from: - carbon depends_on: - carbon # Grafana # Metrics dashboard grafana: image: grafana:v1 build: dockerfile: Grafana.dockerfile context: . ports: - '3000:3000' depends_on: - graphite-api