services:
  telegraf:
    image: bitnami/telegraf:1.31.0
    restart: on-failure
    volumes:
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
      - type: bind
        source: /var/lib/docker
        target: /var/lib/docker
      - ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
    command: --config /etc/telegraf/telegraf.conf
    depends_on:
      victorialogs:
        condition: service_healthy
      victoriametrics:
        condition: service_healthy

  victorialogs:
    image: docker.io/victoriametrics/victoria-logs:v0.20.2-victorialogs
    volumes:
      - victorialogs-vector-docker-vl:/vlogs
    ports:
      - '9428:9428'
    command:
      - -storageDataPath=/vlogs
      - -loggerFormat=json
      - -syslog.listenAddr.tcp=0.0.0.0:8094
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://127.0.0.1:9428/health"]
      interval: 1s
      timeout: 1s
      retries: 10

  victoriametrics:
    image: victoriametrics/victoria-metrics:latest
    ports:
      - '8428:8428'
    command:
      - -storageDataPath=/vmsingle
      - -promscrape.config=/promscrape.yml
      - -loggerFormat=json
    volumes:
      - victorialogs-vector-docker-vm:/vmsingle
      - ./scrape.yml:/promscrape.yml
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8428/health"]
      interval: 1s
      timeout: 1s
      retries: 10

volumes:
  victorialogs-vector-docker-vl:
  victorialogs-vector-docker-vm: