Skip to content

Commit fd42d7e

Browse files
committed
Monitoring: rolling config update
Make sure monitoring stack is automatically deployed on config content changes Related Issue(s): * #984
1 parent ce7fc05 commit fd42d7e

File tree

3 files changed

+50
-32
lines changed

3 files changed

+50
-32
lines changed

services/monitoring/Makefile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,15 @@ ${TEMP_COMPOSE}-master: docker-compose.yml docker-compose.master.yml config.moni
8484
${TEMP_COMPOSE}-local: docker-compose.yml docker-compose.letsencrypt.dns.yml config.monitoring .env pgsql_query_exporter_config.yaml smokeping_prober_config.yaml tempo_config.yaml
8585
@${REPO_BASE_DIR}/scripts/docker-stack-config.bash -e .env $< docker-compose.letsencrypt.dns.yml > $@
8686

87-
docker-compose.yml: docker-compose.yml.j2 .env .venv pgsql_query_exporter_config.yaml
87+
docker-compose.yml: docker-compose.yml.j2 .env .venv pgsql_query_exporter_config.yaml \
88+
./alertmanager/config.yml \
89+
./tempo_config.yaml \
90+
./node-exporter/docker-entrypoint.sh \
91+
./prometheus/prometheus.yml \
92+
./prometheus/prometheus-federation.yml \
93+
./prometheus/prometheus.rules.yml \
94+
./pgsql_query_exporter_config.yaml \
95+
./smokeping_prober_config.yaml
8896
$(call jinja,$<,.env,$@)
8997

9098
.PHONY: grafana-import

services/monitoring/docker-compose.yml.j2

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,5 @@
11
version: "3.7"
22

3-
volumes:
4-
prometheus_data: {}
5-
grafana_data: {}
6-
alertmanager_data: {}
7-
prometheus_data_federation: {}
8-
9-
networks:
10-
monitored:
11-
name: ${MONITORED_NETWORK}
12-
external: true
13-
public:
14-
external: true
15-
name: ${PUBLIC_NETWORK}
16-
17-
configs:
18-
alertmanager_config:
19-
file: ./alertmanager/config.yml
20-
tempo_config:
21-
file: ./tempo_config.yaml
22-
node_exporter_entrypoint:
23-
file: ./node-exporter/docker-entrypoint.sh
24-
prometheus_config:
25-
file: ./prometheus/prometheus.yml
26-
prometheus_config_federation:
27-
file: ./prometheus/prometheus-federation.yml
28-
prometheus_rules:
29-
file: ./prometheus/prometheus.rules.yml
30-
pgsql_query_exporter_config:
31-
file: ./pgsql_query_exporter_config.yaml
32-
smokeping_prober_config:
33-
file: ./smokeping_prober_config.yaml
343
services:
354
cadvisor-exporter:
365
image: gcr.io/cadvisor/cadvisor:v0.49.1
@@ -424,3 +393,43 @@ services:
424393
limits:
425394
memory: 2000M
426395
cpus: "2.0"
396+
397+
configs:
398+
alertmanager_config:
399+
name: ${STACK_NAME}_alertmanager_config_{{ "./alertmanager/config.yml" | sha256file | substring(0,10) }}
400+
file: ./alertmanager/config.yml
401+
tempo_config:
402+
name: ${STACK_NAME}_tempo_config_{{ "./tempo_config.yaml" | sha256file | substring(0,10) }}
403+
file: ./tempo_config.yaml
404+
node_exporter_entrypoint:
405+
name: ${STACK_NAME}_node_exporter_entrypoint_{{ "./node-exporter/docker-entrypoint.sh" | sha256file | substring(0,10) }}
406+
file: ./node-exporter/docker-entrypoint.sh
407+
prometheus_config:
408+
name: ${STACK_NAME}_prometheus_config_{{ "./prometheus/prometheus.yml" | sha256file | substring(0,10) }}
409+
file: ./prometheus/prometheus.yml
410+
prometheus_config_federation:
411+
name: ${STACK_NAME}_prometheus_config_federation_{{ "./prometheus/prometheus-federation.yml" | sha256file | substring(0,10) }}
412+
file: ./prometheus/prometheus-federation.yml
413+
prometheus_rules:
414+
name: ${STACK_NAME}_prometheus_rules_{{ "./prometheus/prometheus.rules.yml" | sha256file | substring(0,10) }}
415+
file: ./prometheus/prometheus.rules.yml
416+
pgsql_query_exporter_config:
417+
name: ${STACK_NAME}_pgsql_query_exporter_config_{{ "./pgsql_query_exporter_config.yaml" | sha256file | substring(0,10) }}
418+
file: ./pgsql_query_exporter_config.yaml
419+
smokeping_prober_config:
420+
name: ${STACK_NAME}_smokeping_prober_config_{{ "./smokeping_prober_config.yaml" | sha256file | substring(0,10) }}
421+
file: ./smokeping_prober_config.yaml
422+
423+
volumes:
424+
prometheus_data: {}
425+
grafana_data: {}
426+
alertmanager_data: {}
427+
prometheus_data_federation: {}
428+
429+
networks:
430+
monitored:
431+
name: ${MONITORED_NETWORK}
432+
external: true
433+
public:
434+
external: true
435+
name: ${PUBLIC_NETWORK}

services/monitoring/template.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
STACK_NAME=${STACK_NAME}
12
MONITORING_DOMAIN=${MONITORING_DOMAIN}
23
MONITORING_PROMETHEUS_RETENTION=${MONITORING_PROMETHEUS_RETENTION}
34
MONITORING_PROMETHEUS_FEDERATION_RETENTION=${MONITORING_PROMETHEUS_FEDERATION_RETENTION}

0 commit comments

Comments
 (0)