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

Spring执行器公制“jvm.memory.used”是什么计量单位?

夏长卿
2023-03-14

我最近开始使用Spring Boot致动器的现有服务。我目前使用的是2.0.1.RELEASE版本。我已经成功启动并运行了Spring Actuator,我可以看到< code>/actuator/metrics页面启动并运行了metrics。我可以在jvm.memory.used指标各自的URL上访问这些指标,并使用各种标签进行深入查看。当我访问URL < code > http://localhost:8080/actuator/metrics/JVM . memory . used 时,我得到以下输出:

{"name":"jvm.memory.used","measurements":[{"statistic":"VALUE","value":7.71444944E8}],"availableTags":[{"tag":"area","values":["heap","nonheap"]},{"tag":"id","values":["Compressed Class Space","PS Survivor Space","PS Old Gen","Metaspace","PS Eden Space","Code Cache"]}]}

因此,我可以看到我使用的JVM内存是“7.71444944E8”(或者更简单地说是“771444944”)。然而,我很好奇,计量单位是什么,因为价值本身是没有意义的。只是字节吗?可能是MB还是GB?我假设答案只是字节。这是有道理的,但到目前为止,我找不到任何潜在的理由来支持这一点。

我尝试过谷歌搜索,但无济于事。我咨询了似乎是规范的Spring执行器文档,但我在那里也找不到任何答案。我还发现了一个类似的SO Q

共有1个答案

解沈义
2023-03-14

好吧,我假设你在引擎盖下使用千分尺。

千分尺是一个Spring启动 2 度量库。

即使您不使用任何存储来管理指标(如Prometheus、DataDog等),您仍然有一些默认注册表。

现在,千分尺监控JVM并提供一些“开箱即用”的指标。在这里,您可以找到有关它的信息。

它使用了一个称为“活页夹”的概念,你对Jvm记忆计量学感兴趣。让我们看一下此活页夹的源代码。

注意以下代码:


            Gauge.builder("jvm.memory.used", memoryPoolBean, (mem) -> getUsageValue(mem, MemoryUsage::getUsed))
                .tags(tagsWithId)
                .description("The amount of used memory")
                .baseUnit(BaseUnits.BYTES)
                .register(registry);

它基本上从JVM内存的JMX中获取信息,该内存可用于每个java进程,并构建一个以字节为单位显示信息的仪表。

所以这是你的外壳,它显示在执行器中。

 类似资料:
  • 本文向大家介绍Spring boot 的执行器是什么?相关面试题,主要包含被问及Spring boot 的执行器是什么?时的应答技巧和注意事项,需要的朋友参考一下 Spring Boot 执行器提供 restful 服务,以访问在生产环境中运行程序的当前状态。在执行器的帮助下,你可以检查各种指标并监控自己的程序。

  • 有人能解释jvm.gc.memory.alloceded度量吗?什么意思?

  • 问题内容: console.log(0.5 | 0); // 0 console.log(-1 | 0); // -1 console.log(1 | 0); // 1 为什么返回零,但任何整数(包括负数)都返回输入整数?单个管道(“ |”)有什么作用? 问题答案: 这是按位或。 由于按位运算仅对整数有意义,因此将被截断。 是,对于任何人。

  • 我在我的类路径上有Spring Security性(并验证为我自己的REST控制器工作),但默认情况下,我的执行器endpoint都是公共可用的(除了关闭)。 我可以随心所欲地禁用endpoint(阅读完这个问题后),但启用的endpoint始终可用,无需验证,也无需管理所需的角色。安全我的属性中的角色。 即使我显式设置了endpoint。豆。sensitive=true例如,无需身份验证即可访问

  • 本文向大家介绍react中的setState执行机制是什么呢?相关面试题,主要包含被问及react中的setState执行机制是什么呢?时的应答技巧和注意事项,需要的朋友参考一下 1.将setState传入的partialState参数存储在当前组件实例的state暂存队列中。 2.判断当前React是否处于批量更新状态,如果是,将当前组件加入待更新的组件队列中。 3.如果未处于批量更新状态,将批

  • 我在应用程序中使用拆分器聚合器模式。我有以下配置- 我的所有通道(CH1、CH2、CH3)都是。Splitter输入通道CH1的源代码是一个文件。 在我的测试中,我观察到即使在CH1通道中添加两个文件,在给定时间也只有一个文件被处理。所以我在我的CH1通道中添加了一个轮询器,现在正在同时处理CH1通道上的多个输入消息。 在聚合器方面,我也注意到执行总是单线程的,即直到第一个线程完成执行,第二个线程