version: '3.5' services: vmagent: container_name: vmagent image: victoriametrics/vmagent depends_on: - "vminsert" ports: - 8429:8429 volumes: - vmagentdata:/vmagentdata - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--promscrape.config=/etc/prometheus/prometheus.yml' - '--remoteWrite.url=http://vminsert:8480/insert/0/prometheus/' restart: always grafana: container_name: grafana image: grafana/grafana:7.5.2 depends_on: - "vmselect" ports: - 3000:3000 restart: always volumes: - grafanadata:/var/lib/grafana - ./provisioning/:/etc/grafana/provisioning/ - ./../../dashboards/victoriametrics.json:/var/lib/grafana/dashboards/vm.json - ./../../dashboards/vmagent.json:/var/lib/grafana/dashboards/vmagent.json vmstorage: container_name: vmstorage image: victoriametrics/vmstorage ports: - 8482 - 8400 - 8401 volumes: - strgdata:/storage command: - '--storageDataPath=/storage' restart: always vminsert: container_name: vminsert image: victoriametrics/vminsert depends_on: - "vmstorage" command: - '--storageNode=vmstorage:8400' ports: - 8480 restart: always vmselect: container_name: vmselect image: victoriametrics/vmselect depends_on: - "vmstorage" command: - '--storageNode=vmstorage:8401' ports: - 8481:8481 restart: always vmalert: container_name: vmalert image: victoriametrics/vmalert depends_on: - "vmselect" ports: - 8880:8880 volumes: - ./alerts.yml:/etc/alerts/alerts.yml command: - '--datasource.url=http://vmselect:8481/select/0/prometheus' - '--remoteRead.url=http://vmselect:8481/select/0/prometheus' - '--remoteWrite.url=http://vminsert:8480/insert/0/prometheus' - '--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 # when copypaste the line below be aware of '$$' for escaping in '$expr' - '--external.alert.source=explore?orgId=1&left=["now-1h","now","VictoriaMetrics",{"expr":"{{$$expr|quotesEscape|crlfEscape|queryEscape}}"},{"mode":"Metrics"},{"ui":[true,true,true,"none"]}]' restart: always alertmanager: container_name: alertmanager image: prom/alertmanager volumes: - ./alertmanager.yml:/config/alertmanager.yml command: - '--config.file=/config/alertmanager.yml' ports: - 9093:9093 restart: always volumes: vmagentdata: {} strgdata: {} grafanadata: {}