快速掌握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.rhkb.cn/news/310474.html

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

相关文章

【Linux】磁盘管理和文件系统

目录 一、硬盘 1.硬盘结构 2.结构类型 二、MBR与磁盘分区 1.MBR主引导记录 2.磁盘分区结构 三、文件系统类型 四、linux系统添加并使用新硬盘的步骤 1.添加新的硬盘 2.刷新识别 3.进行分区 4.格式化&#xff0c;创建文件系统 5.挂载使用 一、硬盘 1.硬盘结构…

部署项目的时候的一些错误

项目打jar包&#xff0c;找不到资源&#xff0c;连接不上数据库 项目打包后无法运行 直接在idea运行可以 解决方法&#xff1a;pom文件中增加&#xff08;配置文件如果是yml&#xff0c;写yml&#xff09; <resources><resource><directory>src/main/java&…

物联网的核心价值是什么?——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网&#xff0c;这个词汇在当今的科技领域已经变得耳熟能详。但当我们深入探索物联网的核心价值时&#xff0c;我们会发现它远不止是一个简单的技术概念&#xff0c;而是一种能够彻底改变我们生活方式和工作方式的革命性力量。 物联网…

Niobe WiFi IoT开发板OpenHarmony内核编程开发——message

本示例将演示如何在Niobe WiFi IoT开发板上使用cmsis 2.0 接口进行消息队列开发 message API分析 osThreadNew() osThreadId_t osThreadNew(osThreadFunc_t func, void *argument,const osThreadAttr_t *attr )描述&#xff1a; 函数osThreadNew通过将线程添加到活动线程列表…

游戏生成式 AI:编织梦想,避开阴影

想象一下&#xff0c;一个沉浸式的游戏世界中玩家遇到的每个 NPC 都由 AI 驱动&#xff0c;他们能与玩家进行互动&#xff0c;从改变游戏体验。据 Inword 一项研究显示&#xff0c;绝大多数游戏玩家渴望这种互动&#xff0c;愿意投入更多的时间和金钱来玩这种由 AI 驱动的游戏。…

ActiveMQ主从架构和集群架构的介绍及搭建

一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 读写分离&#xff0c;纵向扩展&#xff0c;所有的写操作一般在master上完成&#xff0c;slave只提供一个热备 1.2 集群架构-Cluster模式特点 分布式的一种存储&#xff0c;水平的扩展&#xff0c;消息的分布…

idm线程越多越好吗 idm线程数多少合适 IDM百度云下载 IDM下载器如何修改线程数

IDM&#xff08;Internet Download Manager&#xff09;是一款流行的网络下载器&#xff0c;它支持多线程下载&#xff0c;这意味着它可以同时建立多个连接来下载文件的不同部分&#xff0c;从而提高下载速度。我们在使用IDM的时候总是有很多疑问&#xff0c;今天我们学习IDM线…

STM32H7上实现AD5758驱动

目录 概述 1 下载ADI 5758 Demo 2 AD5758驱动的移植 2.1 使用STM32CubeMX创建工程 2.2 接口函数实现 2.2.1 驱动接口列表 2.2.2 函数实现 2.2.3 修正ad5758驱动 3 AD5758应用程序 3.1 编写测试程序 3.1.1 配置参数结构 3.1.2 配置参数函数 3.1.3 读取参数函数 3.…

docker-compose部署RabbitMQ(一步到位)

docker-compose如下 version: 3.1 services:rabbitmq:restart: alwaysimage: rabbitmq:managementcontainer_name: rabbitmqhostname: rabbitports:- 5672:5672- 15672:15672environment:TZ: Asia/ShanghaiRABBITMQ_DEFAULT_USER: rabbitRABBITMQ_DEFAULT_PASS: 123456volumes…

SpringBoot 启动分析

一、序言 本文简单分析一下 SpringBoot 的启动流程。 二、SpringBoot 启动源码分析 public ConfigurableApplicationContext run(String... args) {// 记录当前时间的纳秒数&#xff0c;用于计算应用程序启动所花费的时间long startTime System.nanoTime();// 创建一个默认…

蓝桥杯2024年第十五届省赛

E:宝石组合 根据给的公式化简后变为gcd(a,b,c)根据算数基本定理&#xff0c;推一下就可以了 然后我们对1到mx的树求约数&#xff0c;并记录约数的次数&#xff0c;我们选择一个最大的且次数大于等3的就是gcd int mx; vector<int> g[N]; vector<int> cnt[N]; int…

VSCode中vue的packag.json报错:unable to load schema from‘ http://json.schema‘...问题解决

package.json有这个报错&#xff0c;类似于这种问题一般是网络连接有问题&#xff0c;无法加载重启一下就好。 但是如果是没有网络或者云桌面等环境不能连接外网&#xff0c;就在设置中把这个设置一下&#xff0c;这样就不报错了&#xff0c;根据需要选择处理。

MybatisPlus实现数据权限隔离

引言 Mybatis Plus对Mybatis做了无侵入的增强&#xff0c;非常的好用&#xff0c;今天就给大家介绍它的其中一个实用功能&#xff1a;数据权限插件。 数据权限插件的应用场景和多租户的动态拦截拼接SQL一样。建议点赞收藏关注&#xff0c;方便以后复习查阅。 依赖 首先导入M…

X-314智能合约:金融创新的强大引擎

&#x1f4a5;火爆到烫手的X-314智能合约&#x1f525; X-314智能合约是基于以太坊区块链开发的&#xff0c;具有高度可定制性和灵活性。 ave开单独板块&#xff1b;详细资料已经准备好&#xff1b;对web3感兴趣的大佬货&#xff1b;多交流多指导&#x1f91d; ​X-314智能合…

Android Studio通过修改文件gradle-wrapper.properties内容下载gradle

一、问题描述 在Android Studio中新建项目后会下载你所新建的项目的activity/gradle/wrapper目录下所配置的gradle-7.3.3-bin.zip包&#xff08;笔者的是该版本包&#xff09;&#xff0c;而大多数时候会下载失败&#xff0c;如下 二、解决办法 新建工程后&#xff0c;取消下…

GPT的使用

个人笔记&#xff08;整理不易&#xff0c;有帮助点个赞&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔&#xff1a;工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客 网站sms-activate.or…

【AngularJs】前端使用iframe预览pdf文件报错

<iframe style"width: 100%; height: 100%;" src"{{vm.previewUrl}}"></iframe> 出现报错信息&#xff1a;Cant interpolate: {{vm.previewUrl}} 在ctrl文件中信任该文件就可以了 vm.trustUrl $sce.trustAsResourceUrl(vm.previewUrl);//信任…

FANUC机器人单轴零点标定的具体方法(全轴零点标定不方便时可采用)

FANUC机器人单轴零点标定的具体方法(全轴零点标定不方便时可采用) 前面和大家分享了FANUC机器人进行零点标定的原因和方法,具体可参考以下链接中的内容:: FANUC机器人进行零点标定的目的和具体方法步骤详解

部署ELFK+zookeeper+kafka架构

目录 前言 一、环境部署 二、部署ELFK 1、ELFK ElasticSearch 集群部署 1.1 配置本地hosts文件 1.2 安装 elasticsearch-rpm 包并加载系统服务 1.3 修改 elasticsearch 主配置文件 1.4 创建数据存放路径并授权 1.5 启动elasticsearch是否成功开启 1.6 查看节点信息 …

基于Python的微博舆论分析,微博评论情感分析可视化系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…