我的下一个问题:
我有一个带有prometheus容器的docker swarm和一个用于特定微服务的1-n容器。
微服务容器可以通过URL访问。 我想这个URL的请求是负载平衡的(当然......)。
目前我已经产生了两个微服务容器。 现在查询指标似乎在两个容器之间切换。 示例:总请求数:10,13,10,13,10,13,......
这是我的prometheus配置。我需要做什么? 每次我杀死或启动一个微服务容器时我都不想调整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
这里的问题是:此配置是否识别出停靠者实例已停止而另一个实例已启动?
更新2 我要求的参数有一个参数......
scrape_configs:
- job_name: 'myjobname'
metrics_path: '/prometheus'
scrape_interval: 15s
dns_sd_configs:
- names: ['tasks.myServiceName']
type: A
port: 8080
# The time after which the provided names are refreshed
[ refresh_interval: <duration> | default = 30s ]
应该这样做...... THX用于阅读; - )
答案 0 :(得分:0)
所以答案很简单: 有multiple, documented ways to scrape。 我正在使用dns-lookup-way:
scrape_configs:
- job_name: 'myjobname'
metrics_path: '/prometheus'
scrape_interval: 15s
dns_sd_configs:
- names ['tasks.myServiceName']
type: A
port: 8080
refresh_interval: 15s