SpringBoot应用监控实战

利用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中全部尝试了一遍。


参考文献


后记

作者一些其他容器化应用方面的文章:

作者更多的原创文章:在此

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

使用shell脚本检测数据库连接访问情况(r10笔记第98天)

最近要迁移几套环境,涉及的数据库有Oracle,MySQL,数量还不少,能够达到的目标就是整合后的服务器缩减幅度达到70%,这样一种迁移场景,就涉及到很多的网络...

35411
来自专栏Java3y

外行人都能看懂的SpringCloud,错过了血亏!

认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)…

1381
来自专栏Linyb极客之路

Spring Boot十种安全措施

811
来自专栏魏琼东

AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(一):下载平台并基于直连环境运行

一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

2607
来自专栏idealclover的填坑日常

ubuntu 18.04 安装(UEFI+GBT)

官方的下载地址在这里~而且似乎自带了加速镜像,在自己的网络环境下可以在7M/s+,似乎是可以的~

3.5K2
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】Java开源web框架汇总(152款)

“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架; 在研究好用和新框架。 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制...

1.1K5
来自专栏Web项目聚集地

微信扫码登录实战(附代码)

导读: 由于微信端流量比较足,所以扫码登录系统功能也受到了很多系统的青睐,本文就来详细的解开该技术的面纱。 优质内容请关注微信公众号“Web项目聚集地”

1.9K2
来自专栏散尽浮华

MySQL高可用架构-MMM环境部署记录

MMM介绍 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MM...

26211
来自专栏格子的个人博客

JMeter安装配置和分布式

前段时间公司的新项目上线了一段时间之后,随着运营规模的变大,老大要求对系统进行一个摸底,那么肯定有人要为这个伟大的工作献身了,是的,那个人就是我。谁让我是就是打...

952
来自专栏Python中文社区

一个基于Flask和MongoDB的CMS内容管理系统

Quokka 世界上最快乐的CMS内容管理系统 封面即为Quokka原意:产于澳大利亚的短尾矮袋鼠 Quokka是一个灵活地运用Python、Flask、Mon...

6339

扫码关注云+社区

领取腾讯云代金券