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 条评论
登录 后参与评论

相关文章

来自专栏Django Scrapy

Elasticsearch1.1 安装(好多坑)

安装Elasticsearch 1.安装elasticsearch-rtf elasticsearch-rtf 是国内某大神根据 elasticsearch 安...

3893
来自专栏Android 研究

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

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

1233
来自专栏张戈的专栏

gh-ost:在线DDL修改MySQL表结构工具

在之前,我分享过一次 pt-online-schema-change 在线 DDL 的工具实践记录,在实际使用过程中,发现部门的很多老系统大量使用了触发器,从而...

6977
来自专栏JadePeng的技术博客

Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果

为了规范代码,我们一般会集成静态代码检测工具,比如PMD、FindBugs、Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮...

4653
来自专栏皮皮之路

【Spring】Spring boot多数据源历险记

3106
来自专栏FreeBuf

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

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

8975
来自专栏乐沙弥的世界

WSREP has not yet prepared node for application use

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

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

02.WebService_使用三要素

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

3586
来自专栏owent

注册表常用键值意义

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]

1252
来自专栏禁心尽力

SpringBoot整合Mybatis之进门篇

已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结。        之前...

1.3K6

扫码关注云+社区