开发者社区> 问答> 正文

如何用Spring Boot进行应用程序性能监控APM?

如何用Spring Boot进行应用程序性能监控APM?

展开
收起
1358896759097293 2021-05-01 11:53:25 1454 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    (1)Spring Boot 2.0监控指标 基于Spring Boot应用程序,我们如何做应用程序的性能监控。对于微服务架构的市场开发课程,也是很重要的一个铺垫,大家需要实战操作去理解我们整个课程内容,包括我们会讲非常重要的里面提供了一个组件,executed还有社区里面一个重要的开发项目,Spring Boot2.5,来帮我们去提供可视化的一套接口,Spring Boot本身也提供这种对应的一些接口,你可以去抓取这些原始的数据,我们在后续使用Spring Boot进行开发的话,这些信息也都可以抓得到,只不过我们需要大家去了解,结合自己的整个监控需求,进行配置相应的接口。 26.png

    (2)Spring Boot性能监控Actuator

    1. Spring Boot 2014年4月性能监控和管理组件Actuator 。
    1. 使用HTTP Endpoint或JMX,运行状态指标数据收集
    2. health, metrics, info, dump, env, etc
    3. 2.0以后改进监控地址带有/actuator前缀
    4. 例如/actuator/health监控健康状态信息
    5. 禁用management.endpoint.shutdown.enabled=true
    6. 单个禁用
    7. management.endpoints.enabled-by-default=false
    8. management.endpoint.info.enabled=true

    Actuator,主要是来帮助你去进行应用程序的一些监控参数的收集,并且进行扩展暴露给第三方程序的。地质列表里面实际针对的各种不同的一个数据的暴露的信息,这里面比较重要的应用程序性能监控的这些数据都属于敏感数据,不能轻易的暴露给第三方及外界。当然还有另外一个问题就是这是一把双刃剑,它本身的性能监控指标的数据收集的话,一定也会消耗一定的服务器资源,比如我们讲的是 CPU或者我们说内存,这里面还会通过网络暴露的话会消耗一定的网络带宽资源,它提供了各种不同的这种监控指标信息的话,实际都属于我们说叫Endpoint的系列都给你提供了一个暴露的端点或者叫终结点。 二、Spring Boot 2.4实战 –内置性能监控 Endpoint 26.1.png

    通过网络给你提供了一个数据暴露的接口,现在就可以用第三方的一些展示数据或自己来开发,开发一个web界面来去展示。 26.2.png

    1.web对接可以抓取原始的单位信息,可以通过HTTP协议或者我们JMX来暴露可以对接prometheus原生环境下比较重要的一个心理监控的一套解决方案。 例子:2.0以后启动了一个我们说的这样一个应用程序,这个地址上下面有很多子目录,对应的这些不同信息的地址,然后你可以去抓取他然后进行展示,是非常重要的。

    2.2.0默认监控EndPoint

    26.3.png

    后面看如何和实际项目进行结合,讲了很多理论知识和概念,也是希望告诉大家这里面对于我们的后续大家开发使用Spring Boot应用程序,包括recipe项目前后端分离的架构的项目,包括我们说微服务架构项目集群,这都是非常重要的一个方式,而且我们整个微架构进行监控的话,也是在这个基础上进行了升级改造。 26.4.png

    你如果要做应用程序的性能监控,这是敏感数据,你要加入终结点的一个暴露信息的一个形式,这个*的话代表所有种类,如果说我只暴露健康的,我只暴露内存或者thread的或者bean的,你只指定一个用逗号分割,有多个用逗号分割。

    Micrometer 1. Micrometer是多维度指标收集器,语言中立的API。 2. 通过类路径和配置,可以支持多系统导出数据,集成框架! 3. Spring Boot 2 Actuator中包含的指标收集工具。 4. Spring Boot 1.5,1.4和1.3支持,额外依赖项。 5. Micrometer为Spring Boot 1中counters和gauges增强功能。 6. 例如, Micrometer Timer能够生成吞吐量,总时间,最近样本的最大延迟,预先计算的百分位数,百分位柱状图相关的时间序列和SLA边界计数。 7. 支持更多的监控工具如Prometheus, Datadog, Wavefront, SignalFx, Influx, etc 8. Spring Boot 2强化特性 Micromeat叫微型指标收集器,它是帮你收集并发,吞吐量相关的那些信息qps,Wps每秒的读取数量每秒的写入数量,这些数据都可以收集起来以后做曲线图,Micromeat的话叫基准测量。 Count是个计数器,这个接口累计被调用次数,还有我们说高阶的话,有可能统计的我们说是不一样的,里面我们说的是针对不同的数据类型,它不同的统一指标,它的数量是不一样,比如我们统计的可能是过去一秒钟它的并发每秒钟的并发的分值,这都不一样。

    Spring Boot 2.0增强Micrometer 1. JVM各种参数使用率 2. 各种内存和缓冲池 3. 与垃圾收集有关的统计 4. 线程利用率 5. 加载/卸载的类的数量 6. CPU使用率 7. Spring MVC和WebFlux请求延迟时间 8. RestTemplate延迟时间 9. 缓存使用率 10.数据源使用率,包括HikariCP池指标参数 11.RabbitMQ连接工厂参数 12.文件描述符使用率使 13.Logback:记录每个级别记录到Logback的事件数量 14.正常运行时间:报告正常运行时间表和表示应用程序绝对启动时间的固定计量表 15.Tomcat使用情况

    Micrometer采集数据图形 26.5.png

    2021-05-02 23:46:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多