VictoriaMetrics/deployment/docker/docker-compose.yml

113 lines
3.5 KiB
YAML
Raw Normal View History

2019-06-02 16:07:21 +00:00
services:
# Metrics collector.
# It scrapes targets defined in --promscrape.config
# And forward them to --remoteWrite.url
vmagent:
container_name: vmagent
image: victoriametrics/vmagent:v1.106.0
2019-06-02 16:07:21 +00:00
depends_on:
- "victoriametrics"
ports:
- 8429:8429
2019-06-02 16:07:21 +00:00
volumes:
- vmagentdata:/vmagentdata
2019-06-02 16:07:21 +00:00
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- "--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
# 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
image: victoriametrics/victoria-metrics:v1.106.0
2019-06-02 16:07:21 +00:00
ports:
- 8428:8428
- 8089:8089
- 8089:8089/udp
2019-06-02 16:07:21 +00:00
- 2003:2003
- 2003:2003/udp
2019-06-02 16:07:21 +00:00
- 4242:4242
volumes:
- vmdata:/storage
command:
- "--storageDataPath=/storage"
- "--graphiteListenAddr=:2003"
- "--opentsdbListenAddr=:4242"
- "--httpListenAddr=:8428"
- "--influxListenAddr=:8089"
- "--vmalert.proxyURL=http://vmalert:8880"
2019-06-02 16:07:21 +00:00
networks:
- vm_net
restart: always
# Grafana instance configured with VictoriaMetrics as datasource
2019-06-02 16:07:21 +00:00
grafana:
container_name: grafana
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
- ./provisioning/datasources/prometheus-datasource/single.yml:/etc/grafana/provisioning/datasources/single.yml
- ./provisioning/dashboards:/etc/grafana/provisioning/dashboards
- ./../../dashboards/victoriametrics.json:/var/lib/grafana/dashboards/vm.json
- ./../../dashboards/vmagent.json:/var/lib/grafana/dashboards/vmagent.json
- ./../../dashboards/vmalert.json:/var/lib/grafana/dashboards/vmalert.json
2019-06-02 16:07:21 +00:00
networks:
- vm_net
restart: always
# vmalert executes alerting and recording rules
vmalert:
container_name: vmalert
image: victoriametrics/vmalert:v1.106.0
depends_on:
- "victoriametrics"
- "alertmanager"
ports:
- 8880:8880
volumes:
- ./rules/alerts.yml:/etc/alerts/alerts.yml
- ./rules/alerts-health.yml:/etc/alerts/alerts-health.yml
- ./rules/alerts-vmagent.yml:/etc/alerts/alerts-vmagent.yml
- ./rules/alerts-vmalert.yml:/etc/alerts/alerts-vmalert.yml
command:
- "--datasource.url=http://victoriametrics:8428/"
- "--remoteRead.url=http://victoriametrics:8428/"
- "--remoteWrite.url=http://victoriametrics:8428/"
- "--notifier.url=http://alertmanager:9093/"
- "--rule=/etc/alerts/*.yml"
# display source of alerts in grafana
- "--external.url=http://127.0.0.1:3000" #grafana outside container
- '--external.alert.source=explore?orgId=1&left={"datasource":"VictoriaMetrics","queries":[{"expr":{{.Expr|jsonEscape|queryEscape}},"refId":"A"}],"range":{"from":"{{ .ActiveAt.UnixMilli }}","to":"now"}}'
networks:
- vm_net
restart: always
# alertmanager receives alerting notifications from vmalert
# and distributes them according to --config.file.
alertmanager:
container_name: alertmanager
image: prom/alertmanager:v0.27.0
volumes:
- ./alertmanager.yml:/config/alertmanager.yml
command:
- "--config.file=/config/alertmanager.yml"
ports:
- 9093:9093
networks:
- vm_net
restart: always
2019-06-02 16:07:21 +00:00
volumes:
vmagentdata: {}
2019-06-02 16:07:21 +00:00
vmdata: {}
grafanadata: {}
networks:
vm_net: