forked from keephq/keep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose-with-otel.yaml
161 lines (147 loc) · 4.04 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
version: "3"
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:
build:
context: .
dockerfile: docker/Dockerfile.dev.ui
ports:
- "3000:3000"
environment:
- NEXTAUTH_SECRET=secret
- NEXTAUTH_URL=http://localhost:3001
- NEXT_PUBLIC_API_URL=http://localhost:8080
- API_URL=http://keep-backend-dev:8080
- NEXT_PUBLIC_POSTHOG_KEY=phc_muk9qE3TfZsX3SZ9XxX52kCGJBclrjhkP9JxAQcm1PZ
- NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com
- NEXT_PUBLIC_PUSHER_HOST=keep-websocket-server
- NEXT_PUBLIC_PUSHER_PORT=6001
- NEXT_PUBLIC_PUSHER_APP_KEY=keepappkey
volumes:
- ./keep/keep-ui:/app
- /app/node_modules
- /app/.next
depends_on:
- keep-backend-dev
keep-backend-dev:
build:
context: .
dockerfile: docker/Dockerfile.dev.api
labels:
- vector_scrape=true
- service=keep-api
ports:
- "8080:8080"
environment:
- OTEL_SERVICE_NAME=keephq
- OTLP_ENDPOINT=http://otel-collector:4317
- METRIC_OTEL_ENABLED=true
- PORT=8080
- SECRET_MANAGER_TYPE=FILE
- SECRET_MANAGER_DIRECTORY=/state
- DATABASE_CONNECTION_STRING=sqlite:////state/db.sqlite3?check_same_thread=False
- PUSHER_APP_ID=1
- PUSHER_APP_KEY=keepappkey
- PUSHER_APP_SECRET=keepappsecret
- PUSHER_HOST=localhost
- PUSHER_PORT=6001
volumes:
- ./keep/keep:/code/keep
- ./state:/state
keep-websocket-server:
image: quay.io/soketi/soketi:1.4-16-debian
ports:
- "6001:6001"
- "9601:9601"
environment:
- SOKETI_USER_AUTHENTICATION_TIMEOUT=3000
- SOKETI_DEFAULT_APP_ID=1
- SOKETI_DEFAULT_APP_KEY=keepappkey
- SOKETI_DEFAULT_APP_SECRET=keepappsecret
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: