Spring Boot应用监控实战

概述

  • pom.xml中添加依赖:
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId></dependency>

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

endpoints:  metrics:    sensitive: false

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

{	"mem": 71529,	"mem.free": 15073,	"processors": 4,	"instance.uptime": 6376,	"uptime": 9447,	"systemload.average": -1.0,	"heap.committed": 48024,	"heap.init": 16384,	"heap.used": 32950,	"heap": 506816,	"nonheap.committed": 23840,	"nonheap.init": 160,	"nonheap.used": 23506,	"nonheap": 0,	"threads.peak": 25,	"threads.daemon": 23,	"threads.totalStarted": 28,	"threads": 25,	"classes": 6129,	"classes.loaded": 6129,	"classes.unloaded": 0,	"gc.copy.count": 74,	"gc.copy.time": 173,	"gc.marksweepcompact.count": 3,	"gc.marksweepcompact.time": 88,	"httpsessions.max": -1,	"httpsessions.active": 0}

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

endpoints:  sensitive: false

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


Spring Boot Admin监控系统

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

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

pom.xml中加入如下依赖:

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-server</artifactId>
	<version>1.5.7</version></dependency><dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-server-ui</artifactId>
	<version>1.5.7</version></dependency>

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

@EnableAdminServer@SpringBootApplicationpublic class SpringbtAdminServerApplication {	public static void main(String[] args) {
		SpringApplication.run(SpringbtAdminServerApplication.class, args);
	}
}

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

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

  • 创建要监控的Spring Boot应用

pom.xml中加入以下依赖

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-client</artifactId>
	<version>1.5.7</version></dependency>

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

spring:  boot:    admin:      url: http://localhost:8081
      client:        name: AdminTest

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

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

  • 查看Detail
  • 查看 Metrics
  • 查看 Enviroment
  • 查看JMX
  • 查看Threads
  • 查看Trace与详情

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

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

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

原文发布于微信公众号 - IT技术精选文摘(ITHK01)

原文发表时间:2018-05-05

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS

* 本文原创作者:lonehand,转载请注明来自FreeBuf.COM 目前,最新的DVWA已经更新到1.9版本(http://www.dvwa.co.uk...

1.4K5
来自专栏battcn

一起来学SpringBoot | 第十三篇:RabbitMQ延迟队列

初探RabbitMQ消息队列中介绍了 RabbitMQ的简单用法,顺带提及了下延迟队列的作用。所谓 延时消息就是指当消息被发送以后,并不想让消费者立即拿到消息,...

3971
来自专栏LanceToBigData

SpringBoot(二)Web整合开发

Spring Boot (二):Web 综合开发 本篇文章接着上篇内容继续为大家介绍spring boot的其它特性(有些未必是spring boot体系桟的功...

3457
来自专栏搜云库

Spring Boot 中使用 LogBack 配置

LogBack是一个日志框架,它与Log4j可以说是同出一源,都出自Ceki Gülcü之手。(log4j的原型是早前由Ceki Gülcü贡献给Apache基...

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

02.WebService_使用三要素

02.WebService_使用三要素 一、Java中WebService规范 JAVA 中共有三种WebService 规范,分别是JAX-WS、J...

3746
来自专栏乐沙弥的世界

WSREP has not yet prepared node for application use

最近PXC 5.7出现脑裂,前端Navicate连接到MySQL时,提示WSREP has not yet prepared node for applicat...

4823
来自专栏Android 研究

Android跨进程通信IPC之6——Binder框架

为了让大家更好的理解Binder机制,我们先来看下Android的整体架构。因为这样大家就知道在Android架构中Binder出于什么地位。 用一下官网上的...

1773
来自专栏张戈的专栏

分享一次Linux任务计划crontab不执行的问题排查过程

朋友弄了一个小项目,要我帮忙做下 Linux 系统运维,上线一段时间后,发现项目偶尔会挂掉导致服务不可用。开发朋友一时之间也没空去研究项目奔溃的根因,只好由我这...

4053
来自专栏木宛城主

探索 SharePoint 2013 Search功能

最近在政府部门介绍SharePoint 2013 新功能,我也准备了很多,比如SharePoint 2013的Search。以后有机会谈谈Office Web ...

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

技术那么多,说出你常用的那些【持续更新】

1031

扫码关注云+社区

领取腾讯云代金券