首页 > 解决方案 > 配置 Prometheus 监控多个微服务

问题描述

我想监视一个Spring Boot运行在Docker-Compose大约 20 个微服务上的微服务应用程序PrometheusGrafana.

最好的方法是什么:
1- 每个微服务都有一个具有多个目标的工作?

scrape_configs:
  - job_name: 'services-job'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['service-one:8080']
        labels:
          group: 'service-one' 
      - targets: ['service-two:8081']
        labels:
          group: 'service-two' 

2- 每项服务都有多个工作和单一目标?

scrape_configs:
  - job_name: 'service-one-job'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['service-one:8080']
        labels:
          group: 'service-one'
  - job_name: 'service-two-job'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['service-two:8081']
        labels:
          group: 'service-two'  
 

标签: docker-composemicroservicesprometheusmonitoring

解决方案


您按作业对目标进行分组的方式与要抓取的端点数量无关。

您需要在同一个作业中将所有具有相同目的的目标分组。这正是文档所说的:

具有相同目的的实例集合,例如为可扩展性或可靠性而复制的流程,称为作业。


推荐阅读