这篇文章主要讲解了“Spring Boot支持的端点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot支持的端点有哪些”吧!
首先我们来捋一下应用监控都需要哪些东西?其实就两点:
-
信息采集器
-
数据可视化 UI
信息采集器会收集应用的健康、审计、指标、HTTP 请求等信息,并将之暴露出来,数据可视化 UI 则会通过仪表盘、图形等展示这些数据,并对数据进行分析、报警等处理。我们分别来看。
Spring Boot Actuator在 Spring Boot 项目中,我们使用的信息采集器主要就是 Spring Boot Actuator,这个模块由 Spring Boot 官方提供,它包含了许多生产级别的功能,例如健康检查、审计、指标收集、HTTP 请求追踪等,Spring Boot Actuator 将这些信息收集起来后,通过 HTTP 和 JMX 两种方式暴露给外部模块。例如 Spring Boot Actuator 通过 /health 端点(endpoints)提供了应用的健康信息,开发者只需要访问该端点就可以看到应用的健康信息,但是这些端点返回的数据是 JSON 格式的,不方便查看,也不方便分析,所以一般情况下,Spring Boot Actuator 都是和一些外部模块一起使用。
Spring Boot Actuator
支持的端点主要有如下一些:
如果是 Web 应用,则再次基础上还支持如下端点:
提到 Spring Boot Actuator,就还有一个东西需要和大家介绍,那就是 Micrometer,从 Spring Boot2.0 开始,Actuator 底层改为了 Micrometer。
当我们在一个 Spring Boot 项目中引入 Actuator 依赖之后,我们会发现它里边包含了 Micrometer:
这个依赖又是干什么的呢?
Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可,而 Micrometer 则会负责完成与不同监控系统的适配工作,类似于一个 Adapter,有了这个 Adapter,切换监控系统就变得非常容易。同时 Micrometer 还支持推送数据到多个不同的监控系统。
而 Spring Boot Actuator 使用 Micrometer 与外部应用监视系统进行集成,这样一来,开发者只需要稍微配置一下就可以使其和外部应用监视系统进行整合了。Micrometer 支持的监控系统有:
-
AppOptics
-
Atlas
-
Datadog
-
Dynatrace
-
Elastic
-
Ganglia
-
Graphite
-
Humio
-
Influx
-
JMX
-
KairosDB
-
New Relic
-
Prometheus
-
SignalFx
-
Simple (in-memory)
-
StatsD
-
Wavefront
信息采集器这块,老实说松哥见到的大部分项目都是用的 Spring Boot Actuator,似乎没有其他更好的选择。如果小伙伴们有用到其他方案,也可以留言讨论。
接下来我们来看看一些常用的应用监控可视化工具。
Spring Boot Admin
这个算是 Spring Boot 中最最正宗的应用监控可视化工具了,看名字就知道有多正宗,当我们创建一个 Spring Boot 项目时,选择依赖时候就有这个选项:
如果是单体应用很多人可能会选择 Spring Boot Admin 作为监控数据可视化工具,不过它也支持微服务应用的(可以通过 Eureka、Consul 等注册中心获取应用信息),只不过在微服务中,我们可能会更多的选择 Grafana+Prometheus 组合。
Spring Boot Admin 主要包含如下功能:
-
显示应用健康信息。
-
显示应用运行的详细信息,例如 JVM 和内存指标、数据源指标、缓存指标等等。
-
显示应用的构建信息。
-
查看 JVM 系统和环境属性
-
查看 Spring Boot 配置属性
-
支持 Spring Cloud 中的端点刷新功能 /refresh-endpoint
-
方便的日志级别管理功能
-
可以与 JMX-beans 进行交互
-
查看 Thread dump
-
查看 http 请求
-
查看计划任务
-
查看和删除活动会话
-
查看 Flyway/Liquibase 数据库迁移
-
下载 heapdump
-
状态更改通知
-
…
可以看到,Spring Boot Admin 不仅仅是将 Actuator 接口中的数据进行可视化,还在此基础上提供了分析、报警等功能。
Spring Boot Admin 的显示界面如下:
Grafana+Prometheus
这个组合在微服务项目中比较常见,松哥之前录制的 Spring Cloud 视频里边也有讲到。
Prometheus 是一款开源的监控 + 时序数据库 + 报警软件,由SoundCloud 公司开发的,在 CNCF 基金会托管并已成功孵化,不过这个 Prometheus 的 UI 比较简单,用户体验不怎么好,现在都流行大屏监控页面,上面展示各种炫酷的图表。所以在实际应用中,Prometheus 一般都是结合 Grafana 一起来使用,Grafana 也是一个开源的跨平台度量分析和可视化 + 告警工具,它支持多种数据源,包括 Prometheus,Grafana 的 UI 就比较炫酷,如下:
当然,使用这套组合也离不开 Spring Boot Actuator。
感谢各位的阅读,以上就是“Spring Boot支持的端点有哪些”的内容了,经过本文的学习后,相信大家对Spring Boot支持的端点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/223006.html