当前位置: 首页 > 知识库问答 >
问题:

如何以编程方式从Spring-Boot-Actutor获得度量?

魏冷勋
2023-03-14

我们在生产中有一个spring应用程序。这不是Spring靴。我找到了这篇关于如何在非Spring-Boot应用程序中使用Spring-Boot-Adactor的帖子。

然而,对我们的要求是聚合来自/metricsendpoint的数据,并对其进行一些分析,报告一个状态指示器。

例如,我们可以使用堆参数{“heap.committed”:480768,“heap.init”:262144,“heap.used”:294461,“heap”:3728384,“threads.peak”:37}来指示应用程序的状态-致命、警告或健康。

这只是一个例子。我们的要求更复杂。事实上,我们已经有了一个状态endpoint,我们希望在其中添加更多信息(基于来自spring-boot-acture/metrics/healtendpoint的数据)。

实现这一点的一种方法是对/metrics/health进行REST调用--在应用程序中,收集数据,聚合它们并返回响应。我不认为这是一个值得推荐的方式。

如果有一个bean,我可以直接提取这些参数,我会自动生成它,并在需要的时候实时计算它们。(其实我会调度定期计算)。

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

{"diskSpace":{"status":"UP","free":386186194944,"threshold":10485760}}

我应该自带什么豆子,免费获得这些属性!

编辑

此文章包含@Autowired MetricRepository。但由于某种原因,它只返回自定义计数器属性。它没有返回堆、内存信息等,例如:报告度量计数器.calls.get_greeting=4报告度量计数器.calls.get_greeting.1=1报告度量计数器.calls.get_greeting.2=1报告度量计数器.calls.get_greeting.3=1报告度量计数器.calls.get_greeting.4=1报告度量计数器.calls.get_greeting.4=1报告度量计数器.status.200.greeting.number=4报告度量计数器.status.404.star-star=1

共有1个答案

吴嘉禧
2023-03-14

/metrics的输出由metricsendpoint生成。它可以作为bean使用,您可以使用@autowired。对其调用invoke将提供所需的数据。

您可以使用healthendpoint/health执行同样的操作。

 类似资料:
  • 问题内容: 我正在开发一个应用程序,除了一件事,它几乎完成了:我不知道如何提高链接速度并将其放置在状态栏中。我是Java新手,所以如果有人可以帮助我,我将不胜感激。PS对不起,英语不好。 问题答案: 如答复者所建议,您的问题不是很清楚。您 可能指的是链路连接速度 (即,具有良好的信号接收Wifi时高达54 Mbps或具有全速HSDPA时高达7.2 Mbps),具体取决于: 一次使用的网络接口 。某

  • 问题内容: 我有从外部配置Web服务中获取的jdbc属性文件。在spring启动中,为了设置mysql属性,将这些属性添加到application.properties很容易: 如何在我的应用中以编程方式覆盖这些内容? Spring-batch道具也是如此: 问题答案: 你可以在对ApplicationEnvironmentPrepared事件作出反应的生命周期侦听器中添加其他属性源。 类似于以下

  • 问题内容: 我有一个应用程序,在application.properties中列出了许多数据源设置。我有一个可以加载这些设置的类。现在,我想从此类中获取值,并使用它们来动态创建DataSource bean。我尝试使用和实现。但是,使用时,处理似乎发生在早期-在填充我的课程之前。如何使用Spring Boot快速读取属性并动态创建bean? 这是我的application.properties的样

  • 下面是我的application.properties的样子: 和我的ConfigurationProperties类: 在这个方法的最后,我想创建一个具有这些设置的并将其添加到ApplicationContext中。但是,如果我试图通过实现并实现来实现这一点,则属性为null,我用填充的也是一样。 使用Spring Boot创建动态数据源的最佳方法是什么?

  • Android将屏幕尺寸定义为普通的大屏幕等。 它会自动选择适当文件夹中的静态资源。我需要这个数据关于当前设备在我的java代码。DisplayMetrics仅提供有关当前设备密度的信息。没有关于屏幕大小可用。 我确实在grep代码中找到了屏幕大小枚举,但是这对我来说似乎不适用于4.0 SDK。有办法得到这些信息吗?