如何以编程方式从spring-boot-actuator获取指标?

时间:2015-09-03 17:51:02

标签: spring-boot spring-boot-actuator

我们在生产中有弹簧应用。它不是Spring-boot。我发现this post关于如何在非弹簧启动应用程序中使用spring-boot-actuator。

但是,对我们的要求是汇总来自/ metrics端点的数据并对其进行一些分析并报告状态指示器。

例如,我们可能会使用诸如的堆参数 {"heap.committed":480768,"heap.init":262144,"heap.used":294461,"heap":3728384,"threads.peak":37}表示申请的状态 - 致命,警告或健康。

这只是一个例子。我们的要求更复杂。实际上,我们已经有一个status endpoint我们要添加更多信息(基于来自/metrics的{​​{1}}和/health个端点的数据)。

我想要实现这一目标的一种方式是 使用应用程序对spring-boot-actuator/metrics进行REST调用,收集数据,聚合它们并返回响应。我不认为这是推荐的方式。

如果有一个我可以直接提取这些参数的bean,我会自动将其自动装配并在需要时随时计算它们。 (事实上​​,我会安排定期计算)。

我对/health返回的所有属性感兴趣。 我也对/metrics中的以下内容感兴趣。

/health

我应该自动装配什么豆并免费获取这些属性!

由于

修改

post{"diskSpace":{"status":"UP","free":386186194944,"threshold":10485760}} 。但由于某种原因,它只返回自定义计数器属性。它不返回堆,内存信息等 例如: @Autowired MetricRepository

1 个答案:

答案 0 :(得分:22)

/metrics的输出由MetricsEndpoint生成。它可以作为bean使用@Autowired。在其上调用invoke可以为您提供所需的数据。

您可以/health使用HealthEndpoint执行相同操作。