快速掌握Spring监控(Spring Boot admin)

监控

  • 监控
    • 可视化监控平台
    • Admin底层逻辑
      • info
    • 自定义端点

监控

  • 监控的作用:
  1. 监控服务状态是否宕机
  2. 监控服务运行指标(内存,虚拟机,线程,请求等)
  3. 监控日志
  4. 管理服务(服务下线)
  • 监控的实施方式

显示监控信息的服务器:用于获取信息,并显示对应的信息
运行的服务:启动时主动上报,告知监控服务器自己需要收到控制

可视化监控平台

Spring Boot Admin,开源社区项目,用于管理和监控SpringBoot应用程序。客户端注册到服务端后,通过HTTP请求方式,服务端定期从客户端获取对应的信息,并通过UI界面展示对应信息。

在创建springboot项目的时候进行勾选:
在这里插入图片描述
pom.xml中对应的依赖如下:

        <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId></dependency>

在启动类中添加注解 @EnableAdminServer

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

然后启动服务,进入到localhost:8080观察可视化界面
在这里插入图片描述
进入到可视化界面
这个时候开启一个应用以便来进行监控
新建一个模块,勾选Admin的客户端
新建的应用应该告诉服务器如何被监控,需要在新的模块下进行进行配置:

spring:boot:admin:client:url: http://localhost:8080
server:port: 80

再次启动项目:
在这里插入图片描述
该项目可以在admin可视化界面进行监控
如果要查看该项目的健康信息可以进行相关配置:

management:endpoint:health:show-details: always

开启健康显示信息为always(默认为false)management与spring为同一级
这时就能查看相关的健康信息:
在这里插入图片描述
存在一种配置可以查看web相关的所有监控项:

management:endpoint:health:show-details: always#web下的监控项endpoints:web:exposure:include: "*"

查看信息如下:
在这里插入图片描述

Admin底层逻辑

我们观察可视化平台中的映射信息可以看出:
在这里插入图片描述
根据映射的地址访问过去我们会发现,可视化平台的一组组数据都是通过执行对应的请求获取来的,且这些请求的首个都是以Actuator开头的

Actuator提供了SpringBoot生产就绪功能,通过端点的配置与访问,获取端点信息
端点描述了一组监控信息,SpringBoot提供了多个内置端点,也可以根据需要自定义端点信息
访问应用当前所有的端点信息: /actuator
访问端点详细信息: /actuator/端点名称

启动所有的端点:
在这里插入图片描述
端点的启动与web端的显示配置是有区别的,端点启动是指端点对外开发,web中的配置是指在web界面显示的端点信息

  • 暴露端点功能

端点中包含的信息存在敏感信息,需要对外暴露端点功能时手动设定端点信息在这里插入图片描述

  • 暴露端点功能

在这里插入图片描述
手动关闭部分端点配置示例:

management:endpoint:health:show-details: alwaysbeans:enabled: true

启动所有端点:

management:endpoints:enabled-by-default: true

info

在可视化界面中存在信息一栏,用于点开后描述该应用的相关信息,由自己定义
通过配置文件进行配置:
示例:
添加作者信息,读取pom.xml中的相关信息

info:author: hhhhappName: @project.artifactId@

info与spring为同一层级配置
当所要展示的信息过多时,可以通过实现类(实现InfoContributor接口)进行信息的更一步描述


@Component
public class peizhi implements InfoContributor {@Overridepublic void contribute(Info.Builder builder) {builder.withDetail("runtime",System.currentTimeMillis());}
}

在这里插入图片描述

  • 自定义health端点的信息

自定义health端点的信息与上述操作相同,在类中进行添加(继承AbstractHealthIndicator)

public class health extends AbstractHealthIndicator {@Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {builder.withDetail("runtime",System.currentTimeMillis());Map infomap=new HashMap();infomap.put("buildTime","2006");builder.withDetails(infomap);builder.up();}
}

自定义端点

我们可以自己定义一个端点:
通过注解 @Endpoint新的端点,id表示端点名称,后面表示是否启用端点

@Component
@Endpoint(id = "wode",enableByDefault = true)
public class duandian {@ReadOperationpublic void nihao(){System.out.println("nihao");}
}

注解 @ReadOperation的意思时当扫描端点的时候就调用注解所标注的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620831.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看 Linux 接入的 USB 设备速率是 USB2 还是 USB3

查看接入 usb 设备的速率 使用以下命令查看接入的 USB 设备速率&#xff08;每一行最后的 xxM 字样&#xff09;。插入设备前查看一次&#xff0c;插入设备后查看一次&#xff0c;对比即可定位到刚插入的设备是哪一条。 lsusb -t命令输出如下图 对照 USB 速率表 对照 USB 速…

限制登录Linux服务器的几种方式

一.第一种方法 通过修改TCP Wrappers服务访问控制来实现限制登录Linux 1.这里以sshd服务为例&#xff0c;配置完成后&#xff0c;只允许配置允许的IP才能ssh连接本机服务器&#xff0c;其他IP拒绝判断某一个基于tcp协议的服务是否支持tcp_wrapper&#xff0c;要先判断它是否支…

关注招聘 关注招聘 关注招聘

&#x1f525;关注招聘 &#x1f525;关注招聘 &#x1f525;关注招聘 &#x1f525;开源产品&#xff1a; 1.农业物联网平台开源版 2.充电桩系统开源版 3.GPU池化软件(AI人工智能训练平台/推理平台) 开源版 产品销售&#xff1a; 1.农业物联网平台企业版 2.充电桩系统企业…

TinyEMU源码分析之中断处理

TinyEMU源码分析之中断处理 1 触发中断2 查询中断2.1 查询中断使能与pending状态&#xff08;mie和mip&#xff09;2.2 查询中断总开关与委托&#xff08;mstatus和mideleg&#xff09;2.2.1 M模式2.2.2 S模式2.2.3 U模式 3 处理中断3.1 获取中断编号3.2 检查委托3.3 进入中断3…

【C++】3.类和对象(中)

一、类的6个默认成员函数 在上一篇博客中&#xff0c;我们计算了空类的大小为 1 。那么空类中真的什么东西都没有吗&#xff1f;其实不是的&#xff0c;当一个类在什么都不写的时候就会自动生成6个默认的成员函数&#xff08;用户没有写&#xff0c;但是编译器自动生成的成员函…

vue--双向数据绑定原理

Vue采用数据劫持 发布者-订阅者模式实现双向数据绑定&#xff0c;实现逻辑图如下所示&#xff1a; 数据劫持 Vue 借助Object.defineProperty()来劫持各个属性&#xff0c;这样一来属性存取过程都会被监听到 发布者-订阅者模式 主要实现三个对象&#xff1a;Observer&#…

详解IP证书申请

申请IP证书&#xff0c;也被称为IP SSL证书&#xff0c;是一种特殊的SSL证书&#xff0c;它不同于传统的域名验证&#xff08;DV&#xff09;证书&#xff0c;是通过验证公网IP地址而不是域名来确保安全连接。这种证书用于保护IP地址&#xff0c;并在安装后起到加密作用。以下是…

Java对接第三方接口C#语言 请求是xml格式方式

文章目录 目录 文章目录 安装流程 小结 概要写法流程技术细节小结 概要 实现方式通过标签方式获取一个Body内标签的信息一步一步解析到需要获取到的数据信息 写法流程 技术细节 先和对面对接项目的开发拿到postman接口数据信息&#xff0c;然后再本地跑通接口&#xff0c;再进…

2024年Instagram运营必备:深入解析Instagram Insights成效分析

Instagram Insights是 Instagram 提供的一项免费数据分析工具&#xff0c;它可以帮助用户更好地了解其粉丝和帖子表现。通过这个工具&#xff0c;用户可以查看有关他们的粉丝、帖子互动和帖子表现的详细数据。更好地洞察目标受众的喜好&#xff0c;从而调整内容和定位策略。 In…

接口自动化测试之调用excel实现接口数据依赖

背景 我们把接口的信息按照规定的格式都维护在excel文件中&#xff0c;通过代码实现调用excel&#xff0c;完成接口的自动化测试。这样&#xff0c;只需要负责人将主要逻辑写好之后&#xff0c;公司其他不会写代码的员工&#xff0c;也可以通过维护excel中的接口数据&#xff…

调度:setTimeout 和 setInterval

有时我们并不想立即执行一个函数&#xff0c;而是等待特定一段时间之后再执行。这就是所谓的“计划调用&#xff08;scheduling a call&#xff09;”。 目前有两种方式可以实现&#xff1a; setTimeout 允许我们将函数推迟到一段时间间隔之后再执行。 setInterval 允许我们重…

【优选算法专栏】专题四:前缀和(二)

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…