2019-06-02 16:07:21 +00:00
|
|
|
services:
|
2024-02-20 17:31:45 +00:00
|
|
|
# Metrics collector.
|
|
|
|
# It scrapes targets defined in --promscrape.config
|
|
|
|
# And forward them to --remoteWrite.url
|
2020-06-29 19:05:34 +00:00
|
|
|
vmagent:
|
|
|
|
container_name: vmagent
|
2024-08-29 13:13:19 +00:00
|
|
|
image: victoriametrics/vmagent:v1.103.0
|
2019-06-02 16:07:21 +00:00
|
|
|
depends_on:
|
|
|
|
- "victoriametrics"
|
|
|
|
ports:
|
2020-06-29 19:05:34 +00:00
|
|
|
- 8429:8429
|
2019-06-02 16:07:21 +00:00
|
|
|
volumes:
|
2020-06-29 19:05:34 +00:00
|
|
|
- vmagentdata:/vmagentdata
|
2019-06-02 16:07:21 +00:00
|
|
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
|
|
command:
|
2022-03-22 11:40:55 +00:00
|
|
|
- "--promscrape.config=/etc/prometheus/prometheus.yml"
|
|
|
|
- "--remoteWrite.url=http://victoriametrics:8428/api/v1/write"
|
2019-06-02 16:07:21 +00:00
|
|
|
networks:
|
|
|
|
- vm_net
|
|
|
|
restart: always
|
2024-02-20 17:31:45 +00:00
|
|
|
# VictoriaMetrics instance, a single process responsible for
|
|
|
|
# storing metrics and serve read requests.
|
2019-06-02 16:07:21 +00:00
|
|
|
victoriametrics:
|
|
|
|
container_name: victoriametrics
|
2024-08-29 13:13:19 +00:00
|
|
|
image: victoriametrics/victoria-metrics:v1.103.0
|
2019-06-02 16:07:21 +00:00
|
|
|
ports:
|
|
|
|
- 8428:8428
|
2020-11-01 21:34:39 +00:00
|
|
|
- 8089:8089
|
|
|
|
- 8089:8089/udp
|
2019-06-02 16:07:21 +00:00
|
|
|
- 2003:2003
|
2020-10-28 09:17:56 +00:00
|
|
|
- 2003:2003/udp
|
2019-06-02 16:07:21 +00:00
|
|
|
- 4242:4242
|
|
|
|
volumes:
|
|
|
|
- vmdata:/storage
|
|
|
|
command:
|
2022-03-22 11:40:55 +00:00
|
|
|
- "--storageDataPath=/storage"
|
|
|
|
- "--graphiteListenAddr=:2003"
|
|
|
|
- "--opentsdbListenAddr=:4242"
|
|
|
|
- "--httpListenAddr=:8428"
|
|
|
|
- "--influxListenAddr=:8089"
|
2022-05-06 14:30:41 +00:00
|
|
|
- "--vmalert.proxyURL=http://vmalert:8880"
|
2019-06-02 16:07:21 +00:00
|
|
|
networks:
|
|
|
|
- vm_net
|
|
|
|
restart: always
|
2024-02-20 17:31:45 +00:00
|
|
|
|
|
|
|
# Grafana instance configured with VictoriaMetrics as datasource
|
2019-06-02 16:07:21 +00:00
|
|
|
grafana:
|
|
|
|
container_name: grafana
|
2024-04-29 10:10:24 +00:00
|
|
|
image: grafana/grafana:10.4.2
|
2019-06-02 16:07:21 +00:00
|
|
|
depends_on:
|
|
|
|
- "victoriametrics"
|
|
|
|
ports:
|
|
|
|
- 3000:3000
|
|
|
|
volumes:
|
|
|
|
- grafanadata:/var/lib/grafana
|
2024-01-22 14:45:31 +00:00
|
|
|
- ./provisioning/datasources/prometheus-datasource:/etc/grafana/provisioning/datasources
|
|
|
|
- ./provisioning/dashboards:/etc/grafana/provisioning/dashboards
|
2020-06-29 19:05:34 +00:00
|
|
|
- ./../../dashboards/victoriametrics.json:/var/lib/grafana/dashboards/vm.json
|
2020-07-15 10:56:06 +00:00
|
|
|
- ./../../dashboards/vmagent.json:/var/lib/grafana/dashboards/vmagent.json
|
2021-08-31 09:28:02 +00:00
|
|
|
- ./../../dashboards/vmalert.json:/var/lib/grafana/dashboards/vmalert.json
|
2019-06-02 16:07:21 +00:00
|
|
|
networks:
|
|
|
|
- vm_net
|
|
|
|
restart: always
|
2024-02-20 17:31:45 +00:00
|
|
|
|
|
|
|
# vmalert executes alerting and recording rules
|
2020-11-07 15:00:23 +00:00
|
|
|
vmalert:
|
|
|
|
container_name: vmalert
|
2024-08-29 13:13:19 +00:00
|
|
|
image: victoriametrics/vmalert:v1.103.0
|
2020-11-07 15:00:23 +00:00
|
|
|
depends_on:
|
|
|
|
- "victoriametrics"
|
|
|
|
- "alertmanager"
|
|
|
|
ports:
|
|
|
|
- 8880:8880
|
|
|
|
volumes:
|
|
|
|
- ./alerts.yml:/etc/alerts/alerts.yml
|
2022-09-21 08:48:38 +00:00
|
|
|
- ./alerts-health.yml:/etc/alerts/alerts-health.yml
|
|
|
|
- ./alerts-vmagent.yml:/etc/alerts/alerts-vmagent.yml
|
2022-11-21 13:45:45 +00:00
|
|
|
- ./alerts-vmalert.yml:/etc/alerts/alerts-vmalert.yml
|
2020-11-07 15:00:23 +00:00
|
|
|
command:
|
2022-03-22 11:40:55 +00:00
|
|
|
- "--datasource.url=http://victoriametrics:8428/"
|
|
|
|
- "--remoteRead.url=http://victoriametrics:8428/"
|
|
|
|
- "--remoteWrite.url=http://victoriametrics:8428/"
|
|
|
|
- "--notifier.url=http://alertmanager:9093/"
|
|
|
|
- "--rule=/etc/alerts/*.yml"
|
2020-11-07 15:00:23 +00:00
|
|
|
# display source of alerts in grafana
|
2022-03-22 11:40:55 +00:00
|
|
|
- "--external.url=http://127.0.0.1:3000" #grafana outside container
|
2024-07-05 06:47:59 +00:00
|
|
|
- '--external.alert.source=explore?orgId=1&left={"datasource":"VictoriaMetrics","queries":[{"expr":{{.Expr|jsonEscape|queryEscape}},"refId":"A"}],"range":{"from":"{{ .ActiveAt.UnixMilli }}","to":"now"}}'
|
2021-03-28 19:20:22 +00:00
|
|
|
networks:
|
2020-11-07 15:00:23 +00:00
|
|
|
- vm_net
|
|
|
|
restart: always
|
2024-02-20 17:31:45 +00:00
|
|
|
|
|
|
|
# alertmanager receives alerting notifications from vmalert
|
|
|
|
# and distributes them according to --config.file.
|
2020-11-07 15:00:23 +00:00
|
|
|
alertmanager:
|
|
|
|
container_name: alertmanager
|
2024-02-29 12:21:02 +00:00
|
|
|
image: prom/alertmanager:v0.27.0
|
2021-01-07 21:33:53 +00:00
|
|
|
volumes:
|
|
|
|
- ./alertmanager.yml:/config/alertmanager.yml
|
|
|
|
command:
|
2022-03-22 11:40:55 +00:00
|
|
|
- "--config.file=/config/alertmanager.yml"
|
2020-11-07 15:00:23 +00:00
|
|
|
ports:
|
|
|
|
- 9093:9093
|
|
|
|
networks:
|
|
|
|
- vm_net
|
|
|
|
restart: always
|
2024-02-20 17:31:45 +00:00
|
|
|
|
2019-06-02 16:07:21 +00:00
|
|
|
volumes:
|
2020-06-29 19:05:34 +00:00
|
|
|
vmagentdata: {}
|
2019-06-02 16:07:21 +00:00
|
|
|
vmdata: {}
|
|
|
|
grafanadata: {}
|
|
|
|
networks:
|
|
|
|
vm_net:
|