普罗米修斯从未知数量的(docker)主机刮

我的下一个问题:

我有一个docker群,有一个prometheus容器和1-n容器用于特定的微服务。

微服务容器可以通过一个url来访问。 我想这个url的请求是一种负载平衡(当然…)。

目前我已经产生了两个微服务容器。 现在查询指标似乎在两个容器之间切换。 示例:总请求数:10,13,10,13,10,13,…

这是我的普罗米修斯configuration。 我需要做什么? 我不想调整prometheusconfiguration每次我杀或启动一个微服务容器…

scrape_configs: - job_name: 'myjobname' metrics_path: '/prometheus' scrape_interval: 15s static_configs: - targets: ['the-service-url:8080'] labels: application: myapplication 

更新1我改变了我的configuration,如下这似乎工作。 这个configuration在docker swarm里面使用了一个dns查找,并且find所有运行指定服务的实例。

 scrape_configs: - job_name: 'myjobname' metrics_path: '/prometheus' scrape_interval: 15s dns_sd_configs: - names: ['tasks.myServiceName'] type: A port: 8080 

这里的问题是:这个configuration是否意识到一个docker实例被停止,另一个启动?

更新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阅读;-)

所以答案非常简单:有多种logging方式可供select 。 我正在使用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