Spring Boot 2执行器指标

时间:2018-06-20 17:27:02

标签: java spring-boot-actuator micrometer

是否有Spring Boot 2指标的参考详细文档。

我的意思是

{
  "names": [
    "jvm.memory.max",
    "http.server.requests",
    "process.files.max",
    "jvm.gc.memory.promoted",
    "tomcat.cache.hit",
    "rabbitmq.channels",
    "system.load.average.1m",
    "tomcat.cache.access",
    "jvm.memory.used",
    "jvm.gc.max.data.size",
    "jdbc.connections.max",
    "jdbc.connections.min",
    "jvm.gc.pause",
    "jvm.memory.committed",
    "system.cpu.count",
    "logback.events",
    "rabbitmq.connections",
    "tomcat.global.sent",
    "jvm.buffer.memory.used",
    "tomcat.sessions.created",
    "jvm.threads.daemon",
    "system.cpu.usage",
    "jvm.gc.memory.allocated",
    "tomcat.global.request.max",
    "hikaricp.connections.idle",
    "hikaricp.connections.pending",
    "tomcat.global.request",
    "rabbitmq.rejected",
    "tomcat.sessions.expired",
    "hikaricp.connections",
    "jvm.threads.live",
    "jvm.threads.peak",
    "tomcat.global.received",
    "hikaricp.connections.active",
    "hikaricp.connections.creation",
    "process.uptime",
    "tomcat.sessions.rejected",
    "process.cpu.usage",
    "tomcat.threads.config.max",
    "jvm.classes.loaded",
    "hikaricp.connections.max",
    "hikaricp.connections.min",
    "rabbitmq.consumed",
    "jvm.classes.unloaded",
    "tomcat.global.error",
    "tomcat.sessions.active.current",
    "tomcat.sessions.alive.max",
    "jvm.gc.live.data.size",
    "tomcat.servlet.request.max",
    "hikaricp.connections.usage",
    "tomcat.threads.current",
    "tomcat.servlet.request",
    "hikaricp.connections.timeout",
    "process.files.open",
    "jvm.buffer.count",
    "jvm.buffer.total.capacity",
    "tomcat.sessions.active.max",
    "hikaricp.connections.acquire",
    "tomcat.threads.busy",
    "rabbitmq.published",
    "process.start.time",
    "tomcat.servlet.error",
    "rabbitmq.acknowledged"
  ]
}
  • 我应该使用哪个指标来衡量内存/ gc / cpu使用率。值也代表什么。

  • 在Spring Boot 1.5.x中,我也可以简单地获取使用过的堆,已提交的堆,gc计数等。如何获得这些值?

还有一种方法可以让我一次调用所有指标。我的意思是要获取所有指标,我现在需要在启动2中调用许多匹配。

1 个答案:

答案 0 :(得分:1)

我仍然自己学习如何使用Spring的新维度实现,但是我想我可以为您解决一些问题。如您所见,Spring Boot 2中的指标比Spring Boot 1.5丰富得多。

Spring网站上有一篇不错的博客文章,其中详细介绍了新的指标引擎为您提供了什么以及为什么需要更改,但为什么需要它们:Micrometer: Spring Boot 2's new application metrics collector

  

A。我应该使用哪些指标来衡量内存/ GC / CPU使用率。这些值也代表什么。

当您导航到应用程序的actuator/metric端点时,您可以查看合适的指标。

内存

  • jvm.memory.max
  • jvm.memory.used
  • jvm.gc.memory.promoted
  • jvm.memory.committed
  • jvm.buffer.memory.used
  • jvm.gc.memory.allocated

GC

  • jvm.gc.memory.allocated
  • jvm.gc.memory.promoted

CPU

  • system.cpu.usage
  • system.cpu.count
  • process.cpu.usage
  

B。同样在Spring Boot 1.5.x中,我可以简单地获取用过的堆,已提交的堆,gc计数等。如何获得这些值?

如前所述,您必须按维度查看指标。

例如,在Spring Boot <2中,为了查看heap.committed:120000,您只需要对/actuator/metrics进行GET请求。

在Spring Boot 2中,要返回 TOTAL 个已落实内存(堆和非堆)的指标,您将在/actuator/metrics/jvm.memory.committed上执行GET请求。

您将收到类似的答复:

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

要仅查看已提交的堆值,请使用堆标记/acutator/metrics/jvm.memory.committted?tag=area:heap发出GET请求。您应该看到类似于以下内容:

{
    "name": "jvm.memory.committed",
    "measurements": [
        {
            "statistic": "VALUE",
            "value": 120000
        }
    ],
    "availableTags": [
        {
            "tag": "id",
            "values": [
                "PS Eden Space",
                "PS Survivor Space",
                "PS Old Gen"
            ]
        }
    ]
}

Spring Boot的Metrics Reference Docs是一个很好的参考资料,也是我了解标记语法的方式(这是最后一部分)。

请参阅this question:如果要确保这些指标正确映射到应用程序的先前指标,请查看以前的版本如何映射到Spring Boot SystemPublicMetrics.java类中的旧指标。

  

还有一种方法可以让我一次调用所有指标。我的意思是要获取所有指标,我现在需要在启动2中调用许多匹配。

我认为目前不存在通过度量标准终结点提供的功能。您可能感兴趣的是Micrometer的HierarchicalNameMapper.java类。每Micrometer's Docs

  
    

维度。系统是否支持通过标记键/值对丰富度量标准名称。如果系统不是维的,则它是分层的,这意味着它仅支持平面度量标准名称。在将度量标准发布到分层系统时,Micrometer会展平一组标记/键值对并将其添加到名称中。

  

因此,如果将数据发布到分层系统(例如JMX),则指标将被展平。如果要导出到另一个系统,也可以实现自己的展平映射器。