Node.js + Prometheus - отказ в целевом соединении - PullRequest
0 голосов
/ 09 января 2019

Я запускаю узел приложений локально. Он работает на http://localhost:3002 с использованием prom-client Я могу видеть метрики в следующей конечной точке http://localhost:3002/metrics.

Я установил Прометей в докер-контейнер и запустил его.

Dockerfile

FROM prom/prometheus
ADD prometheus.yml /etc/prometheus/

prometheus.yml

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:3002']
        labels:
          service: 'my-service'
          group: 'production'
rule_files:
  - 'alert.rules'

docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus

При переходе к http://localhost:9090/targets отображается

Получить http://localhost:3002/metrics: набрать tcp 127.0.0.1:3002: подключиться: соединение отклонено

enter image description here

Подскажите, пожалуйста, что я здесь не так делаю. Приложение узла работает на локальном хосте в этом порту, потому что когда я перехожу на http://localhost:3002/metrics, я вижу метрики.

1 Ответ

0 голосов
/ 19 мая 2019

Когда вы находитесь внутри контейнера, вы не можете получить доступ к локальному хосту напрямую. Вам нужно будет добавить docker.for.mac.localhost в ваш файл prometheus.yml. Смотрите ниже:

Ваша работа в файле prometheus.yml. - job_name: 'Прометей'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['localhost:9090']
- targets: ['docker.for.mac.localhost:3002']  
...