Skip to content

Commit 338445c

Browse files
authored
Merge pull request #27 from ikochuev/lesson29
Lesson 29 submission: Monitoring stack for Reddit app
2 parents fd8359a + 2affa6b commit 338445c

18 files changed

Lines changed: 569 additions & 0 deletions

lesson29/blackbox.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
modules:
2+
http_2xx:
3+
prober: http
4+
timeout: 10s
5+
http:
6+
valid_status_codes: [200, 302, 301]
7+
method: GET
8+
no_follow_redirects: false
9+
fail_if_ssl: false
10+
fail_if_not_ssl: false
11+
preferred_ip_protocol: "ip4"
12+
tls_config:
13+
insecure_skip_verify: false
14+
icmp:
15+
prober: icmp
16+
timeout: 5s
17+
icmp:
18+
preferred_ip_protocol: "ip4"

lesson29/docker-compose.yml

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
version: '3.3'
2+
3+
networks:
4+
monitoring:
5+
driver: bridge
6+
7+
volumes:
8+
post_db:
9+
prometheus_data:
10+
grafana_data:
11+
12+
services:
13+
# Reddit App
14+
post_db:
15+
image: mongo:3.2
16+
container_name: post_db
17+
volumes:
18+
- post_db:/data/db
19+
networks:
20+
- monitoring
21+
22+
ui:
23+
image: ${REGISTRY}/ui:${TAG}
24+
pull_policy: always
25+
container_name: ui
26+
environment:
27+
- POST_SERVICE_HOST=post
28+
- POST_SERVICE_PORT=5000
29+
- COMMENT_SERVICE_HOST=comment
30+
- COMMENT_SERVICE_PORT=9292
31+
ports:
32+
- 9292:9292
33+
depends_on:
34+
- comment
35+
- post
36+
networks:
37+
- monitoring
38+
39+
comment:
40+
image: ${REGISTRY}/comment:${TAG}
41+
pull_policy: always
42+
container_name: comment
43+
environment:
44+
- COMMENT_DATABASE_HOST=post_db
45+
- COMMENT_DATABASE=comments
46+
depends_on:
47+
- post_db
48+
networks:
49+
- monitoring
50+
51+
post:
52+
image: ${REGISTRY}/post:${TAG}
53+
pull_policy: always
54+
container_name: post
55+
environment:
56+
- POST_DATABASE_HOST=post_db
57+
- POST_DATABASE=posts
58+
depends_on:
59+
- post_db
60+
ports:
61+
- 5000:5000
62+
networks:
63+
- monitoring
64+
65+
# Monitoring Stack
66+
prometheus:
67+
image: prom/prometheus:v2.45.0
68+
container_name: prometheus
69+
command:
70+
- '--config.file=/etc/prometheus/prometheus.yml'
71+
- '--storage.tsdb.path=/prometheus'
72+
- '--web.console.libraries=/etc/prometheus/console_libraries'
73+
- '--web.console.templates=/etc/prometheus/consoles'
74+
- '--storage.tsdb.retention.time=200h'
75+
- '--web.enable-lifecycle'
76+
ports:
77+
- 9090:9090
78+
volumes:
79+
- prometheus_data:/prometheus
80+
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
81+
networks:
82+
- monitoring
83+
84+
node-exporter:
85+
image: prom/node-exporter:v1.6.0
86+
container_name: node_exporter
87+
command:
88+
- '--path.rootfs=/host'
89+
pid: host
90+
restart: unless-stopped
91+
volumes:
92+
- '/:/host:ro,rslave'
93+
ports:
94+
- '9100:9100'
95+
networks:
96+
- monitoring
97+
98+
cadvisor:
99+
image: gcr.io/cadvisor/cadvisor:v0.52.0
100+
container_name: cadvisor
101+
privileged: true
102+
devices:
103+
- /dev/kmsg:/dev/kmsg
104+
volumes:
105+
- '/:/rootfs:ro'
106+
- '/var/run:/var/run:ro'
107+
- '/sys:/sys:ro'
108+
- '/var/lib/docker/:/var/lib/docker:ro'
109+
- '/dev/disk/:/dev/disk:ro'
110+
ports:
111+
- '8080:8080'
112+
networks:
113+
- monitoring
114+
115+
grafana:
116+
image: grafana/grafana:9.5.2
117+
container_name: grafana
118+
environment:
119+
- GF_SECURITY_ADMIN_USER=admin
120+
- GF_SECURITY_ADMIN_PASSWORD=admin
121+
volumes:
122+
- grafana_data:/var/lib/grafana
123+
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro
124+
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards:ro
125+
- ./grafana/dashboards:/var/lib/grafana/dashboards:ro
126+
ports:
127+
- 3000:3000
128+
networks:
129+
- monitoring
130+
131+
blackbox-exporter:
132+
image: prom/blackbox-exporter:v0.24.0
133+
container_name: blackbox-exporter
134+
command:
135+
- '--config.file=/config/blackbox.yml'
136+
volumes:
137+
- ./blackbox.yml:/config/blackbox.yml:ro
138+
ports:
139+
- 9115:9115
140+
networks:
141+
- monitoring

0 commit comments

Comments
 (0)