我配置了 Prometheus 来监控不同的 Spring Boot 应用程序。这些应用程序可以在五个不同服务器的集合上部署多个实例。有些应用程序部署在每个节点上,有些则没有。无法确定 applicationOne 是否在 nodeOne 上(这由 Portainer 负责),因此我将 Prometheus 配置为目标,列出可以部署应用程序的所有可能 ip。
- job_name: 'production-diagnostic'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['1.1.1.1:9003', '1.1.1.2:9003', '1.1.1.3:9003', '1.1.1.4:9003', '1.1.1.5:9003']
这个特定的应用程序被配置为一次只在一个服务器上运行,只有当有重新部署的人工请求时,它才会在另一个节点上运行。Prometheus 的行为很糟糕:它显然从该应用程序的四个节点读取指标,即使它仅部署在其中一个节点上。其他应用程序也是如此。
例子:
jvm_memory_used_bytes{application="localization_vehicles_diagnostic",area="heap",id="G1 Eden Space",instance="1.1.1.1:9003",job="production-diagnostic"} 299892736 jvm_memory_used_bytes{application="localization_vehicles_diagnostic",area ="heap",id="G1 Eden Space",instance="1.1.1.2:9003",job="production-diagnostic"} 296747008 jvm_memory_used_bytes{application="localization_vehicles_diagnostic",area="heap",id="G1伊甸空间",instance="1.1.1.3:9003",job="production-diagnostic"} 294649856 jvm_memory_used_bytes{application="localization_vehicles_diagnostic",area="heap",id="G1 Eden Space",instance="1.1. 1.4:9003",工作="生产诊断”} 295698432
我的配置有问题吗?我需要添加一些其他参数吗?还是 Prometheus 和 Portainer 有问题?