-
Notifications
You must be signed in to change notification settings - Fork 700
/
docker-compose-with-otel.yaml
136 lines (120 loc) · 3.12 KB
/
docker-compose-with-otel.yaml
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
services:
loki:
image: grafana/loki:latest
profiles:
- otel
ports:
- "3100:3100"
command: ["-config.file=/etc/loki/local-config.yaml"]
tempo:
image: grafana/tempo:latest
profiles:
- otel
command: ["-config.file=/etc/tempo.yaml"]
volumes:
- ./otel-shared/tempo.yaml:/etc/tempo.yaml
- ./tempo-data:/tmp/tempo
ports:
- "14268:14268" # jaeger ingest
- "3200:3200" # tempo
- "9095:9095" # tempo grpc
- "4317:4317" # otlp grpc
- "4318:4318" # otlp http
- "9411:9411" # zipkin
prometheus:
image: prom/prometheus:latest
profiles:
- otel
command:
- --config.file=/etc/prometheus.yaml
- --web.enable-remote-write-receiver
- --enable-feature=exemplar-storage
volumes:
- ./otel-shared/prometheus.yaml:/etc/prometheus.yaml
ports:
- "9090:9090"
alertmanager:
image: prom/alertmanager
profiles:
- otel
container_name: alertmanager
volumes:
- ./otel-shared/alertmanager.yml:/etc/alertmanager/alertmanager.yml
command:
- "--config.file=/etc/alertmanager/alertmanager.yml"
grafana:
image: grafana/grafana:10.0.3
profiles:
- otel
depends_on:
- loki
- tempo
- prometheus
volumes:
- ./otel-shared/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_DISABLE_LOGIN_FORM=false
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
ports:
- "3001:3000"
# OpenTelemetry collector. Make sure you set USERID and GOOGLE_APPLICATION_CREDENTIALS
# environment variables for your container to authenticate correctly
otel-collector:
image: otel/opentelemetry-collector-contrib:0.81.0
profiles:
- otel
ports:
- "9100:9100"
depends_on:
- tempo
- loki
volumes:
- ./otel-shared/otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml
keep-frontend-dev:
extends:
file: docker-compose.common.yml
service: keep-frontend-common
environment:
- API_URL=http://keep-backend-dev:8080
build:
dockerfile: docker/Dockerfile.dev.ui
volumes:
- ./keep-ui:/app
- /app/node_modules
- /app/.next
depends_on:
- keep-backend-dev
keep-backend-dev:
extends:
file: docker-compose.common.yml
service: keep-backend-common
build:
dockerfile: docker/Dockerfile.dev.api
environment:
- OTEL_SERVICE_NAME=keephq
- OTLP_ENDPOINT=http://otel-collector:4317
- METRIC_OTEL_ENABLED=true
volumes:
- .:/app
- ./state:/state
keep-websocket-server:
extends:
file: docker-compose.common.yml
service: keep-websocket-server-common
log_collector:
image: timberio/vector:0.32.2-debian
profiles:
- otel
volumes:
- ./otel-shared/vector.toml:/etc/vector/vector.toml
- /var/run/docker.sock:/var/run/docker.sock
volumes:
certs:
driver: local
esdata01:
driver: local
kibanadata:
driver: local
db_data: