blob: 93697f457a519fe187aab59ce42b1aed9e9e1cc9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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:
|