本地prometheus无法访问IDE中运行的Spring Boot应用程序

问题描述 投票:0回答:1

我有一个正在运行的 Spring Boot 应用程序,我向其中添加了执行器和 micrometer-prometheus 依赖项。

使用Postman时,我可以成功到达Prometheus端点

/actuator/prometheus

Prometheus 使用我在下面复制的 docker-compose 文件启动。

问题: 通过使用 UI,我发现 Prometheus 无法访问端点。

docker-compose.yml

prometheus:
image: prom/prometheus
container_name: prometheus
ports:
  - "9090:9090"
volumes:
  - ./prometheus.yml:/etc/prometheus/prometheus.yml

普罗米修斯.yml

scrape_configs:
  - job_name: 'backend'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 3s
    static_configs:
      - targets: ['127.0.0.1:8080']
        labels:
          application: 'app'

以及使用Postman时的响应

docker prometheus spring-boot-actuator
1个回答
0
投票

Spring Boot 应用程序在您的 ide 中运行,并且可由本地主机访问,如果我们将 Prometheus 配置为使用本地主机与 Spring Boot 应用程序进行通信,它将无法工作,因为 Prometheus 容器在运行时有自己的本地主机在 Docker 中。它给出了错误。您可以对 docker-compose.yml 和 prometheus.yml 进行以下更改

1.docker-compose.yml

 prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    extra_hosts:
      - 'host.docker.internal:host-gateway'

2.普罗米修斯.yml

scrape_configs:
  - job_name: 'backend'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 3s
    static_configs:
      - targets: [ 'host.docker.internal:8080']
        labels:
          application: 'app'
© www.soinside.com 2019 - 2024. All rights reserved.