Prometheus入门教程(六):Spring Boot Actuator 实现应用监控

点击蓝色“陈树义”关注我哟

前面的例子中,我们学习的都是 Prometheus 自身的内容,即监控的都是机器或者系统层面的指标。那么如果我们需要对 Java 应用做监控,例如:监控 JVM 的信息,监控 Spring Bean 的信息。那我们应该怎么实现呢?

从这篇文章开始,我们就开始学习如何去监控 Java 应用的状态信息,并且最终实现自定义业务监控指标的监控。

Spring 监控机制

在学习如何监控 Java 应用之前,我们需要先了解下 SpringBoot 的监控机制。在 Spring 2.x 之前,SpringBoot 使用 Actuator 模块进行监控,而在 Spring 2.x 之后,SpringBoot 使用了 Micrometer 进行监控。

Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理 Spring Boot 应用。这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过 HTTP 和 JMX 访问。

在 Spring 2.x 之后,Actuator 使用 Micrometer 与这些外部应用程序监视系统集成。这样一来,只需很少的配置即可轻松集成外部的监控系统。

那什么是 Micrometer 呢?

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可。Micrometer 会负责完成与不同监控系统的适配工作。这就使得切换监控系统变得很容易。

简单地说,actuator 是真正去采集数据的模块,而 Micrometer 更像是一个适配器,将 actuator 采集到的数据适合给各种监控工具。

Spring Actuator 快速入门

接下来我们快速创建一个简单的项目,来让你明白 Spring Boot Actuator 能做什么。

我们到 Spring Initializr 创建一个名为 spring-web-actuator-demo 的项目,依赖选择:Spring Web、Spring Boot Actuator 即可。

将生成的项目下载下来后打开,查看 pom.xml 文件,可以看到对应的依赖为:

打开项目后,直接运行 SpringWebActuatorDemoApplication.java 文件,正常情况下会使用 8080 端口作为服务端口。

访问 localhost:8080/actuator/health 查看应用的健康状态,正常情况下会返回 UP 信息。

除了提供最基本的健康检查外,actuator 还提供了许多其他的端点(Endpoints)信息。通过这些端点信息,我们可以掌握 99% 的应用状态信息。

端点暴露配置

不同于 Actuator 1.x,Actuator 2.x 的大多数端点默认被禁掉。所以在查看对应端点之前,我们需要做好配置,否则我们是无法访问对应端点的。

我们可以通过以下配置,来配置通过 JMX 和 HTTP 暴露的端点。

属性 默认值
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include *
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.include info, health

我们可以选择打开所有的监控点,例如:

management.endpoints.web.exposure.include=*

也可以选择打开部分端点,例如下面的配置打开 beans 和 trace 两个端点。

management.endpoints.web.exposure.exclude=beans,trace

Actuator 默认所有的监控点路径都在 /actuator/*,当然如果有需要这个路径也支持定制。例如下面的配置将前缀改成了 monitor,那么访问路径就变成了 /monitor/*

management.endpoints.web.base-path=/minitor

这里我们在 application.yml 中加入如下配置,默认打开所有端点。

management.endpoints.web.exposure.include=*

接着我们访问地址:localhost:8080/actuator/metrics,可以看到所有的指标地址。

如果我们要查看 process.uptime 指标,那么我们只需要访问 localhost:8080/actuator/metrics/process.uptime,就可以看到具体

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值