Прометей - отказано в целевом подключении - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь получить контейнер Prometheus для очистки метрик от cAdvisor.

Это мой прометей.yml:

global:
  scrape_interval: 10s
  evaluation_interval: 10s

scrape_configs:
 - job_name: "prometheus"
   static_configs:
     - targets: ["localhost:9090"]

 - job_name: "docker"
   static_configs:
     - targets: ['localhost:9323']

 - job_name: "cadvisor"
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:7070']
       labels:
         alias: "cadvisor"

И мой docker-compose.yml:

version: "3.5"

services:
  app:
    container_name: app
    build: "./app"
    restart: always
    volumes:
      - ./app:/app
    depends_on:
      - db
    links:
      - db
    ports:
      - 8080:8080
  db:
    container_name: db
    image: postgres
    restart: always
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=articlesdb
      - POSTGRES_USER=dbuser 
      - POSTGRES_PASSWORD=dbpassword
    ports:
      - "5432:5432"
  prometheus:
    container_name: prometheus
    image: prom/prometheus:latest
    #build:
    #  context: ./prometheus
    #  dockerfile: Dockerfile
    ports:
      - 9090:9090
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
    depends_on:
      - cadvisor
  cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    ports:
      - 7070:8080
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    depends_on:
      - db

В разделе целей Прометей говорит, что соединение с контейнером cAdvisor и демоном Docker отклонено , в то время как Прометей сам по себе работает. Я могу связаться с cAdvisor по адресу localhost: 7070 / metrics с помощью cURL или в моем браузере. В чем может быть проблема, и как я могу это исправить?

1 Ответ

0 голосов
/ 02 ноября 2018

В файле docker-compose вы назвали службу cAdvisor cadvisor, чтобы в сети докеров к ней можно было получить доступ через DNS-имя cadvisor. Измените свой prometheus.yml static_config следующим образом, чтобы очистить сервис:

 - job_name: "cadvisor"
    scrape_interval: 5s
    static_configs:
      - targets: ['cadvisor:7070']
        labels:
          alias: "cadvisor"
...