黑客业务

24小时接单的黑客,黑客业务,黑客怎么找,网络黑客,黑客技术

Spring Boot 应用监控常见方案梳理

应用程序监控对我们的生产环境来说是一件非常重要的事情。操作和维护人员不可能24 小时盯着应用程序,及时解决应用程序,这是不现实的。我们需要能够实时掌握应用程序的操作数据,以便提前发现问题,并在应用程序挂断时自动报警,以解放开发人员。

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 主流的应用程序监控方案,没有说具体的用法,然后花时间和你谈谈具体的用法。除了这些主流方案外,还有许多利基方案,松也看到了少数项目团队开发的应用程序监控方案。但对于大多数项目来说,这些现成的成熟方案无疑是最好的选择。

    好了,今天先和朋友聊这么多,再来看具体用法。~

    本文转载自微信公众号「江南一点雨」,请注意以下二维码。转载本文,请联系江南一点雨微信官方账号。

       
    • 评论列表:
    •  鸠骨庸颜
       发布于 2022-05-28 15:50:30  回复该评论
    • ctuator,这个模块的模块Spring Boot 官方提供,包括健康检查、审计、指标收集等多种生产级功能HTTP 请求跟踪等,Spring Boot Act

    发表评论:

    Powered By

    Copyright Your WebSite.Some Rights Reserved.