我有一个Docker Swarm,其中有一个Prometheus容器和一个特定微服务的1-n容器。
可以通过url访问微服务容器。我认为对这个url的请求是负载平衡的(当然……)。
目前,我已经生成了两个微服务容器。查询指标现在似乎在两个容器之间切换。示例:总请求数:10,13,10,13,10,13,。。。
这是我的普罗米修斯配置。我该怎么办?我不想每次杀死或启动微服务容器时都调整Prometheus配置。
scrape_configs:
- job_name: 'myjobname'
metrics_path: '/prometheus'
scrape_interval: 15s
static_configs:
- targets: ['the-service-url:8080']
labels:
application: myapplication
更新1
我改变了我的配置如下,似乎工作。此配置使用Docker Swarm内部的dns查找,并查找运行指定服务的所有实例。
scrape_configs:
- job_name: 'myjobname'
metrics_path: '/prometheus'
scrape_interval: 15s
dns_sd_configs:
- names: ['tasks.myServiceName']
type: A
port: 8080
这里的问题是:此配置是否识别一个Docker实例已停止,另一个实例已启动?
更新2
我要的是一个参数:
scrape_configs:
- job_name: 'myjobname'
metrics_path: '/prometheus'
scrape_interval: 15s
dns_sd_configs:
- names: ['tasks.myServiceName']
type: A
port: 8080
[ refresh_interval: <duration> | default = 30s ]
这应该会奏效。