【发布时间】:2018-06-22 20:57:51
【问题描述】:
我正在尝试在 Prometheus 上注册一个 Spring 微服务。两者都在 docker 上运行。我的服务在 Prometheus UI 中出现“超出上下文截止日期”。
有趣的是,当我尝试在新选项卡中打开“localhost:8081/metrics”时,它会显示指标。
这是我的 docker-compose.yml。这个问题似乎很常见,但我还没有遇到适合我的解决方案;还没有。
docker-compose.yml
version: '2.1'
networks:
cadrs:
ipam:
config:
- subnet: 172.28.0.0/16
services:
prometheus:
image: prom/prometheus:0.18.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '-config.file=/etc/prometheus/prometheus.yml'
ports:
- '9090:9090'
demo:
build: "C:/Users/hmt843/Downloads/demo"
hostname: "demo"
ports:
- "8081:8081"
networks:
cadrs:
ipv4_address: 172.28.1.2
node-exporter:
image: prom/node-exporter:v0.15.0
ports:
- '9100:9100'
prometheus.yml
global:
scrape_interval: 15s
external_labels:
monitor: 'my-monitor'
scrape_configs:
- job_name: 'prometheus'
target_groups:
- targets: ['localhost:9090']
- job_name: 'demo'
tls_config:
insecure_skip_verify: true
target_groups:
- targets: ['172.28.1.2:8081']
- job_name: 'node-exporter'
target_groups:
- targets: ['node-exporter:9100']
【问题讨论】:
-
抓取 node_exporter 是否有效?您是否确认“演示”容器的 IP 确实是 172.28.1.2 ?您有什么理由直接使用 IP 而不是“demo:8081”作为抓取目标?
-
是的,节点导出器工作正常,IP 确实是 172.28.1.2。演示:8081 不起作用。有没有其他方法可以通过 docker 运行它?
-
如果我使用“demo:8081”运行它,它会显示以下错误:Get demo:8081/metrics: dial tcp 10.4.73.24:8081: getsockopt: connection denied
-
您能否确认 a) 演示应用程序已启动并在端口 8081 上运行并侦听所有接口(连接到演示容器并使用 netstat / curl)和 b) 您可以从通过 curl/wget 的 prometheus 容器?
标签: docker docker-compose prometheus