在不使用 spring-boot 执行器的情况下将来自 spring 应用程序的指标公开给 prometheus

Posted

技术标签:

【中文标题】在不使用 spring-boot 执行器的情况下将来自 spring 应用程序的指标公开给 prometheus【英文标题】:Expose metrics from spring application to prometheus without using spring-boot actuator 【发布时间】:2020-05-22 08:02:52 【问题描述】:

我一直在尝试在非 springboot 应用程序中收集千分尺指标并将它们公开给 prometheus。我添加了以下依赖项和相同的测试方法。我想知道如何继续并将收集的指标公开给prometheus 来自我的非 Spring Boot 应用程序(传统的 Spring 应用程序)。

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.2.0</version>
</dependency>
public string testmetrics()
    private PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
    registry.counter("ws metric collection","tktdoc metrics");
    String metricsInfo = registry.scrape();
    return metricsInfo;
 

【问题讨论】:

【参考方案1】:

您实际上必须公开一个 HTTP 端点并使用它配置 Prometheus; HTTP 端点将为抓取提供数据。

here 是一个展示如何通过启动 HTTP 服务器(您的应用程序可能已经在使用)添加 HTTP 端点的示例。

【讨论】:

以上是关于在不使用 spring-boot 执行器的情况下将来自 spring 应用程序的指标公开给 prometheus的主要内容,如果未能解决你的问题,请参考以下文章

如何在不出现 ORA-01460:未实现或不合理的转换错误的情况下将大字符串设置为参数?

如何在不杀死 /health 的情况下将我的 Spring Boot 应用程序默认为 application/xml?

是否可以在不使用 LoadLibrary 的情况下将函数“复制”到另一个进程中并在线程中执行它?

如何在不使用数据框的情况下将一行分解为多行?

在不加载/执行脚本/图像的情况下将 HTML 字符串转换为 HTML DOM?

在不使用 PHP 的情况下将 MySql 与 Android 连接