SpringBoot实用开发篇复习4(实用开发篇完)
创始人
2024-02-01 06:25:17

在上面一节,我们学习了SpringBoot整合第三方技术,这次我们主要学习监控技术,主要包含四个部分,分别为监控的意义,可视化监控平台,监控的原理,自定义监控指标等,下面一起来学习吧。

目录

一、监控

1.1、监控的意义

1.2、可视化监控平台

1.3、监控的原理

1.4、自定义监控指标


一、监控

1.1、监控的意义

监控的意义如下:总结一句话就是监控就是观察当前的的设备具体的情况,观察到底发生了什么.

那么监控具体的实施方式是什么样的呢,一般来说,运行的服务需要主动上报自己是否需要收到监控,一旦需要被监控,则监控信息的服务器主动监控,获取并显示服务信息。

1.2、可视化监控平台

启动监控服务器,步骤如下:
首先在pom.xml文件中配置坐标依赖,具体如下:


4.0.0org.springframework.bootspring-boot-starter-parent2.5.4 com.wangadmin_server0.0.1-SNAPSHOTadmin_serverDemo project for Spring Boot1.8de.codecentricspring-boot-admin-starter-server2.5.4org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-maven-plugin

在.yml文件中配置服务器端口号,默认端口号。

server:port: 8080

在启动类中使用注解@EnableAdminServer开启监控服务,具体如下:

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableAdminServer //开启监控服务
public class AdminServerApplication {public static void main(String[] args) {SpringApplication.run(AdminServerApplication.class, args);}}

在浏览器访问,如下所示,则说明监控服务启动成功。

下面搭建一个客户端的web应用,在客户端进行配置,让服务器端对其进行监控,如下:

首先,需要在pom.xml配置相应的坐标依赖,如下:
 


4.0.0org.springframework.bootspring-boot-starter-parent2.5.4 com.clientadmin_client0.0.1-SNAPSHOTadmin_clientDemo project for Spring Boot1.8de.codecentricspring-boot-admin-starter-client2.5.4org.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-autoconfigureorg.springframework.bootspring-boot-autoconfigureorg.springframework.bootspring-boot-maven-plugin

然后,设置应用被服务端监控,并配置要监控的项,如下:


server:port: 81#设置应用被监控
spring:boot:admin:client:url: http://localhost:8080
#配置需要被监控的项
management:endpoint:health:show-details: alwaysendpoints:web:exposure:include: "*"

启动客户端,在浏览器的服务端可以看到被监控的应用,如下:

 

1.3、监控的原理

1)Actuator

监控的方式是通过端点的配置与访问实现的,SpringBoot内置了多个端点,根据端点可以访问当前应用的相应信息。

端点的类型有很多种,常用的有health用于显示当前应用的健康信息,loggers用于显示应用程序中日志相关信息,metrics用于显示应用程序中指标度量信息。

 对于端点是否开放,需要在.yml文件中对其进行配置,具体如下, 使用enable属性开启端点。

除了开启端点,也需要在配置文件手动指定对外暴露端点,具体如下:

2)info端点控制

对于静态的info信息的配置,只需要在.yml文件进行相应配置即可,如下:

#配置info信息
info:appName: @project.artifactId@author: wangversion: @project.version@company: alibaba

可以在服务端的信息栏看到相应的配置信息。

 

对于动态info信息的添加,需要在自定义的配置类中编程实现,具体如下:

import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;import java.util.HashMap;
import java.util.Map;@Component
public class InfoConfig implements InfoContributor {@Overridepublic void contribute(Info.Builder builder) {builder.withDetail("runTime",System.currentTimeMillis()) ;Map info = new HashMap() ;info.put("buildTime","2022") ;builder.withDetails(info) ;}
}

现在去浏览器的监控服务端可以观察到添加的动态info数据,如下:

3)health端点指标控制

为health自定义状态信息,在配置类继承AbstractHealthIndicator并重写相应的方法,在方法内区设置health的自定义信息。


import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.Status;
import org.springframework.stereotype.Component;import java.util.HashMap;
import java.util.Map;@Component
public class HealthInfo extends AbstractHealthIndicator {@Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {builder.status(Status.UP) ;builder.withDetail("runTime",System.currentTimeMillis()) ;Map info = new HashMap() ;info.put("buildTime","2022") ;builder.withDetails(info) ;}
}

可以在服务端看到监控的health信息如下:

4)metrics端点指标控制

直接在业务层添加性能监控指标,如下:

 

1.4、自定义监控指标

需要自己手写一个配置类,在配置类中定义端点,并定义在读取端点时候调用的方法,在该方法中可以填写需要监控的相关指标信息。

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...