-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathcompose.yaml
121 lines (112 loc) · 4.38 KB
/
compose.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
# ============================================================================ #
# Read-Write Mode - Metrics
# ============================================================================ #
# Note:
# include is available in Docker Compose version 2.20 and later, and Docker Desktop version 4.22 and later.
include:
- path: ../../common/compose-include/minio.yaml
- path: ../../common/compose-include/memcached.yaml
- path: ../../common/compose-include/grafana.yaml
- path: ../../common/compose-include/alloy.yaml
# Configure a check that's run to determine whether or not containers for this service are "healthy".
# docs: https://docs.docker.com/compose/compose-file/compose-file-v3/#healthcheck
x-healthcheck: &status-healthcheck
interval: 5s
timeout: 2s
retries: 10
configs:
alloy_config_file:
file: ../../common/config/alloy/metrics.alloy
mimir_config_file:
file: ../../common/config/mimir/read-write-mode-metrics.yaml
services:
gateway:
# https://github.com/qclaogui/codelab-monitoring/blob/main/alloy-modules/compose/README.md
labels:
metrics.grafana.com/scrape: false
depends_on: { mimir-write: { condition: service_healthy }, mimir-backend: { condition: service_healthy } }
image: ${NGINX_IMAGE:-docker.io/nginxinc/nginx-unprivileged:1.27-alpine}
volumes:
- ../../common/config/nginx/10-default-lgtmp.envsh:/docker-entrypoint.d/10-default-lgtmp.envsh
- ../../common/config/nginx/nginx.conf:/etc/nginx/templates/nginx.conf.template
- ../../common/config/mimir/gateway_mimir.conf:/etc/nginx/templates/gateway_mimir.conf.template
environment:
- MIMIR_DISTRIBUTOR_HOST=mimir-write
- MIMIR_QUERY_FRONTEND_HOST=mimir-read
- MIMIR_ALERT_MANAGER_HOST=mimir-backend
- MIMIR_RULER_HOST=mimir-backend
- MIMIR_COMPACTOR_HOST=mimir-backend
healthcheck:
test: [ "CMD", "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/" ]
interval: 3s
timeout: 1s
retries: 20
ports:
- "38080:8080"
mimir-backend:
depends_on: { minio: { condition: service_healthy } }
image: &mimirImage ${MIMIR_IMAGE:-docker.io/grafana/mimir-alpine:2.14.0}
configs:
- source: mimir_config_file
target: /etc/mimir/config.yaml
volumes:
- ../../common/config/mimir:/etc/mimir/configs
command:
- -config.file=/etc/mimir/config.yaml
- -target=backend
- -config.expand-env=true
healthcheck:
test: [ "CMD", "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/ready" ]
<<: *status-healthcheck
deploy:
replicas: 2
mimir-read:
depends_on: { minio: { condition: service_healthy } }
image: *mimirImage
configs:
- source: mimir_config_file
target: /etc/mimir/config.yaml
volumes:
- ../../common/config/mimir:/etc/mimir/configs
command:
- -config.file=/etc/mimir/config.yaml
- -target=read
- -config.expand-env=true
deploy:
replicas: 2
mimir-write:
depends_on: { minio: { condition: service_healthy } }
image: *mimirImage
configs:
- source: mimir_config_file
target: /etc/mimir/config.yaml
volumes:
- ../../common/config/mimir:/etc/mimir/configs
command:
- -config.file=/etc/mimir/config.yaml
- -target=write
- -config.expand-env=true
healthcheck:
test: [ "CMD", "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/ready" ]
<<: *status-healthcheck
deploy:
replicas: 3
networks:
default:
aliases:
- mimir-memberlist
mimirtool:
labels:
metrics.grafana.com/scrape: false
image: ${MIMIRTOOL_IMAGE:-docker.io/grafana/mimirtool:2.14.0}
volumes:
- ../../../monitoring-mixins/crontab:/etc/crontabs/root
- ../../../monitoring-mixins/alloy-mixin/deploy/alloy-mixin-alerts.yaml:/rules/alloy-mixin-alerts.yaml
- ../../../monitoring-mixins/memcached-mixin/deploy/memcached-mixin-alerts.yaml:/rules/memcached-mixin-alerts.yaml
- ../../../monitoring-mixins/mimir-mixin/deploy/mimir-mixin-rules.yaml:/rules/mimir-mixin-rules.yaml
- ../../../monitoring-mixins/mimir-mixin/deploy/mimir-mixin-alerts.yaml:/rules/mimir-mixin-alerts.yaml
environment:
- MIMIR_ADDRESS=http://gateway:8080
- MIMIR_TENANT_ID=anonymous
entrypoint: crond -f
restart: always