如何以编程方式从 spring-boot-actuator 获取指标?
how to get metrics from spring-boot-actuator programmatically?
我们在生产中有一个 spring 应用程序。它不是 Spring-boot。我发现 this post 关于如何在非 spring-boot 应用程序中使用 spring-boot-actuator。
但是,我们的要求是聚合来自 /metrics 端点的数据并对其进行一些分析并报告状态指示器。
例如,我们可能会使用堆参数,例如
{"heap.committed":480768,"heap.init":262144,"heap.used":294461,"heap":3728384,"threads.peak":37}
表示应用程序的状态 - FATAL、WARN 或 HEALTHY。
这只是一个例子。我们的要求更复杂。事实上,我们已经有了一个 status endpoint
,我们想在其中添加更多信息(基于来自 spring-boot-actuator
的 /metrics
和 /health
端点的数据)。
我想实现的一种方法是
在应用程序中对 /metrics
和 /health
进行 REST 调用,收集数据,聚合它们并 return 响应。我认为这不是推荐的方式。
如果有一个 bean 我可以直接提取这些参数,我会自动装配它并在需要时即时计算它们。 (其实我会定期计算的)
我对 return 来自 /metrics
的所有属性感兴趣。
同时我也对 /health
.
中的以下内容感兴趣
{"diskSpace":{"status":"UP","free":386186194944,"threshold":10485760}}
我应该自动装配哪些 bean 并免费获得这些属性!
谢谢
编辑
这个 post 有 @Autowired MetricRepository
。但出于某种原因,它 return 仅使用自定义计数器属性。它不是 returning 堆、内存信息等
例如:
Reporting metric counter.calls.get_greeting=4
Reporting metric counter.calls.get_greeting.1=1
Reporting metric counter.calls.get_greeting.2=1
Reporting metric counter.calls.get_greeting.3=1
Reporting metric counter.calls.get_greeting.4=1
Reporting metric counter.status.200.greeting.number=4
Reporting metric counter.status.404.star-star=1
/metrics
的输出由 MetricsEndpoint
生成。它可以作为一个 bean 提供,您可以拥有 @Autowired
。对其调用 invoke
应该会为您提供所需的数据。
您可以对 /health
和 HealthEndpoint
执行相同的操作。
我们在生产中有一个 spring 应用程序。它不是 Spring-boot。我发现 this post 关于如何在非 spring-boot 应用程序中使用 spring-boot-actuator。
但是,我们的要求是聚合来自 /metrics 端点的数据并对其进行一些分析并报告状态指示器。
例如,我们可能会使用堆参数,例如
{"heap.committed":480768,"heap.init":262144,"heap.used":294461,"heap":3728384,"threads.peak":37}
表示应用程序的状态 - FATAL、WARN 或 HEALTHY。
这只是一个例子。我们的要求更复杂。事实上,我们已经有了一个 status endpoint
,我们想在其中添加更多信息(基于来自 spring-boot-actuator
的 /metrics
和 /health
端点的数据)。
我想实现的一种方法是
在应用程序中对 /metrics
和 /health
进行 REST 调用,收集数据,聚合它们并 return 响应。我认为这不是推荐的方式。
如果有一个 bean 我可以直接提取这些参数,我会自动装配它并在需要时即时计算它们。 (其实我会定期计算的)
我对 return 来自 /metrics
的所有属性感兴趣。
同时我也对 /health
.
{"diskSpace":{"status":"UP","free":386186194944,"threshold":10485760}}
我应该自动装配哪些 bean 并免费获得这些属性!
谢谢
编辑
这个 post 有 @Autowired MetricRepository
。但出于某种原因,它 return 仅使用自定义计数器属性。它不是 returning 堆、内存信息等
例如:
Reporting metric counter.calls.get_greeting=4
Reporting metric counter.calls.get_greeting.1=1
Reporting metric counter.calls.get_greeting.2=1
Reporting metric counter.calls.get_greeting.3=1
Reporting metric counter.calls.get_greeting.4=1
Reporting metric counter.status.200.greeting.number=4
Reporting metric counter.status.404.star-star=1
/metrics
的输出由 MetricsEndpoint
生成。它可以作为一个 bean 提供,您可以拥有 @Autowired
。对其调用 invoke
应该会为您提供所需的数据。
您可以对 /health
和 HealthEndpoint
执行相同的操作。