diff options
Diffstat (limited to 'contrib/docker-compose/compose-monitoring.yaml')
-rw-r--r-- | contrib/docker-compose/compose-monitoring.yaml | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/contrib/docker-compose/compose-monitoring.yaml b/contrib/docker-compose/compose-monitoring.yaml new file mode 100644 index 0000000..93697f4 --- /dev/null +++ b/contrib/docker-compose/compose-monitoring.yaml @@ -0,0 +1,70 @@ +name: warden + +services: + loki: + image: grafana/loki:3.5.3 + ports: + - "3100:3100" + command: -config.file=/etc/loki/local-config.yaml + networks: + - warden + + promtail: + image: grafana/promtail:3.5.3 + volumes: + - /var/log:/var/log + command: -config.file=/etc/promtail/config.yml + networks: + - warden + + grafana: + image: grafana/grafana:12.1.0 + environment: + - GF_PATHS_PROVISIONING=/etc/grafana/provisioning + - GF_AUTH_ANONYMOUS_ENABLED=true + - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin + - GF_FEATURE_TOGGLES_ENABLE=alertingSimplifiedRouting,alertingQueryAndExpressionsStepMode,traceqlEditor + volumes: + - ./config/grafana-ds.yaml:/etc/grafana/provisioning/datasources/datasources.yaml + ports: + - "3000:3000" + networks: + - warden + + # Tempo runs as user 10001, and docker compose creates the volume as root. + # As such, we need to chown the volume in order for Tempo to start correctly. + init: + image: &tempoImage grafana/tempo:2.8.2 + user: root + entrypoint: + - "chown" + - "10001:10001" + - "/var/tempo" + volumes: + - ./tempo-data:/var/tempo + + tempo: + image: *tempoImage + command: [ "-config.file=/etc/tempo.yaml" ] + volumes: + - ./config/tempo.yaml:/etc/tempo.yaml + - ./tempo-data:/var/tempo + ports: + - "3200:3200" + - "4317:4317" + depends_on: + - init + networks: + - warden + + # And put them in an OTEL collector pipeline... + otel-collector: + image: otel/opentelemetry-collector:0.131.1 + command: [ "--config=/etc/otel-collector.yaml" ] + volumes: + - ./config/otel-collector.yaml:/etc/otel-collector.yaml + networks: + - warden + +networks: + warden: |