8

是否有任何关于 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 中获取我需要调用许多点击仪式的所有指标。

4

1 回答 1

10

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

Spring 网站上有一篇很好的博客文章,详细介绍了新的度量引擎为您提供了什么以及为什么需要进行更改:Micrometer:Spring Boot 2 的新应用程序度量收集器

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

中央处理器

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

B. 同样在 spring boot 1.5.x 中,我可以简单地获得 used heap、committed heap、gc count 等。我怎样才能获得这些值?

正如您所提到的,您必须按维度查看指标。

例如,在 Spring Boot <2 中,为了查看heap.committed:120000,您只需在/actuator/metrics.

在 Spring Boot 2 中,要返回TOTAL已提交内存(堆和非堆)的指标,您将在/actuator/metrics/jvm.memory.committed.

您将收到类似于以下内容的响应:

{
    "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"
            ]
        }
    ]
}

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

{
    "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是一个很好的资源,以及我如何了解标签语法(这是最后一节)。

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

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

我认为目前没有开箱即用的指标端点。您感兴趣的可能是 Micrometer 的HierarchicalNameMapper.java课程。每,千分尺的文档

维度。系统是否支持使用标签键/值对丰富指标名称。如果一个系统不是维度的,它是分层的,这意味着它只支持一个扁平的度量名称。在将指标发布到分层系统时,Micrometer 会展平一组标签/键值对并将它们添加到名称中。

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

于 2018-07-14T18:22:03.860 回答