Spring Boot 应用监控实战

2018 年 5 月 5 日 开源中国 hansonwang


文章链接:https://my.oschina.net/hansonwang99/blog/1805402

作者:hansonwang

首发公众号:CodeSheep


摘要: 利用SpringBoot作为微服务单元的实例化技术选型时,我们不可避免的要面对的一个问题就是如何实时监控应用的运行状况数据,比如:健康度、运行指标、日志信息、线程状况等等。本文就该问题做一点探索并记录试验过程



概述


之前讲过Docker容器的可视化监控,即监控容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息。同样利用SpringBoot作为微服务单元的实例化技术选型时,我们不可避免的要面对的一个问题就是如何实时监控应用的运行状况数据,比如:健康度、运行指标、日志信息、线程状况等等。本文就该问题做一点探索并记录试验过程。


入门使用:Actuator插件


Actuator插件是SpringBoot原生提供的一个服务,可以通过暴露端点路由,用来输出应用中的诸多 端点信息。实战一下!


  • pom.xml中添加依赖:



启动Spring Boot应用程序之后,只要在浏览器中输入端点信息就能获得应用的一些状态信息。


常用端点列举如下,可以一个个详细试一下:


  • /info        应用基本信息

  • /health       健康度信息

  • /metrics      运行指标

  • /env        环境变量信息

  • /loggers      日志相关

  • /dump       线程相关信息

  • /trace       请求调用轨迹


当然此时只能使用/health 和 /info端点,其他因为权限问题无法访问。想访问指定端点的话可以在yml配置中添加相关的配置项,比如/metrics端点则需要配置:



此时浏览器访问/metrics端点就能得到诸如下面所示的信息:



当然也可以开启全部端点权限,只需如下配置即可:



由于Actuator插件提供的监控能力毕竟有限,而且UI比较简陋,因此需要一个更加成熟一点的工具


Spring Boot Admin 监控系统


SBA则是基于Actuator更加进化了一步,其是一个针对Actuator接口进行UI美化封装的监控工具。我们来实验一下。


  • 首先来创建一个Spring Boot Admin Server工程作为服务端


pom.xml中加入如下依赖:



然后在应用主类上通过加注解来启用Spring Boot Admin



启动程序,浏览器打开 localhost:8081 查看Spring Boot Admin主页面:



此时Application一栏空空如也,等待待监控的应用加入


  • 创建要监控的Spring Boot应用


pom.xml中加入以下依赖



然后在yml配置中添加如下配置,将应用注册到Admin服务端去:



Client应用一启动,Admin服务立马推送来了消息,告诉你AdminTest上线了:



此时去Admin主界面上查看,发现Client应用确实已经注册上来了:



  • 查看Detail



  • 查看 Metrics



  • 查看 Enviroment



  • 查看JMX



  • 查看Threads



  • 查看Trace与详情



点击最上方JOURNAL,会看到被监控应用程序的事件变化:



图中可以清晰地看到,应用从 REGISTRATION → UNKNOWN → UP 的状态跳转。

这样就将Actuator插件提供的所有端点信息在SBA中全部尝试了一遍。


参考文献


  • http://codecentric.github.io/spring-boot-admin/1.5.7/




推荐阅读

谷歌终于开放 ".app" 顶级域名注册

可以抛弃 Python 了?Google 开源 Swift for TensorFlow 意味着什么

宣布 Java 8 停止维护后,Oracle 又毙掉了 JavaOne

期待已久的 Ubuntu 18.04 LTS 终于正式发布

图文详解 Java 字节码,想不懂都难

点击“阅读原文”查看更多精彩内容

登录查看更多
0

相关内容

【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
专知会员服务
82+阅读 · 2020年5月16日
专知会员服务
121+阅读 · 2020年3月26日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
57+阅读 · 2020年1月3日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
基于Prometheus的K8S监控在小米的落地
DBAplus社群
16+阅读 · 2019年7月23日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
大数据流处理平台的技术选型参考
架构文摘
4+阅读 · 2018年3月14日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Arxiv
6+阅读 · 2018年2月7日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
专知会员服务
82+阅读 · 2020年5月16日
专知会员服务
121+阅读 · 2020年3月26日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
57+阅读 · 2020年1月3日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
相关资讯
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
基于Prometheus的K8S监控在小米的落地
DBAplus社群
16+阅读 · 2019年7月23日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
大数据流处理平台的技术选型参考
架构文摘
4+阅读 · 2018年3月14日
相关论文
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Arxiv
6+阅读 · 2018年2月7日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
5+阅读 · 2015年9月14日
Top
微信扫码咨询专知VIP会员