在 Spring Boot 和 Prometheus 中监控自定义指标
Monitor custom metrics in Spring Boot and Prometheus
我想发送一些指标,比如ResponseTime、RequestCount等到Prometheus,然后在Grafana上定义一个dashboard。我知道我必须在我们的 class 中自动装配 PrometheusMeterRegistry
并使用它,如下所示:
@Autowired
private PrometheusMeterRegistry registry;
public void addSuccess(){
registry.counter("RequestCountMetric", "success").increment()
}
现在,我不知道如何在 Spring 启动应用程序中设置 Prometheus ip/port。
Prometheus 使用 pull/scrape 模型,这意味着 Spring 引导应用程序将指标发送到监控系统,例如通过 UDP 使用 statsD , Prometheus 将调用应用程序公开的端点来提取指标。
将 prometheus
添加到 application.properties
中暴露的执行器端点以打开端点 /actuator/prometheus
:
management.endpoints.web.exposure.include=prometheus
因此,您实际上需要配置您的 Prometheus 实例,使其可以找到 Spring 启动应用程序。
这是指向本地 Spring 引导应用程序的 Prometheus 配置示例:
global:
scrape_interval: 15s
evaluation_interval: 15s
- job_name: 'my-application to scrape'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:8080']
最后一步是将您的 Grafana 指向您的 Prometheus,这可以在 Grafana UI 中轻松完成并添加 Prometheus 数据源。
我想发送一些指标,比如ResponseTime、RequestCount等到Prometheus,然后在Grafana上定义一个dashboard。我知道我必须在我们的 class 中自动装配 PrometheusMeterRegistry
并使用它,如下所示:
@Autowired
private PrometheusMeterRegistry registry;
public void addSuccess(){
registry.counter("RequestCountMetric", "success").increment()
}
现在,我不知道如何在 Spring 启动应用程序中设置 Prometheus ip/port。
Prometheus 使用 pull/scrape 模型,这意味着 Spring 引导应用程序将指标发送到监控系统,例如通过 UDP 使用 statsD , Prometheus 将调用应用程序公开的端点来提取指标。
将 prometheus
添加到 application.properties
中暴露的执行器端点以打开端点 /actuator/prometheus
:
management.endpoints.web.exposure.include=prometheus
因此,您实际上需要配置您的 Prometheus 实例,使其可以找到 Spring 启动应用程序。
这是指向本地 Spring 引导应用程序的 Prometheus 配置示例:
global:
scrape_interval: 15s
evaluation_interval: 15s
- job_name: 'my-application to scrape'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:8080']
最后一步是将您的 Grafana 指向您的 Prometheus,这可以在 Grafana UI 中轻松完成并添加 Prometheus 数据源。