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

news2024/9/22 9:44:21

监控

  • 监控
    • 可视化监控平台
    • 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: always
    beans:
      enabled: true

启动所有端点:

management:
   endpoints:
      enabled-by-default: true

info

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

info:
  author: hhhh
  appName: @project.artifactId@

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


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

在这里插入图片描述

  • 自定义health端点的信息

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

public class health extends AbstractHealthIndicator {
    @Override
    protected 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 {
      @ReadOperation
      public void nihao(){
        System.out.println("nihao");
    }
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解IP证书申请

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

李廉洋:4.16黄金,原油最新资讯,亚盘面走势分析及策略。

周一&#xff0c;10年期美国国债收益率攀升3个基点&#xff0c;至4.55%&#xff0c;原因是投资者在权衡中东紧张局势加剧演变为全面地区战争的风险。美国国债将成为市场关注的焦点&#xff0c;上周美国国债收益率上升12个基点&#xff0c;至去年11月以来的最高水平&#xff0c;…

TC387实现SPI自通讯

TC387实现SPI自通讯 预期效果&#xff1a; TC387上定义两个SPI通讯接口&#xff0c;一个用于发数据一个用于收数据。准确无误的收到一次数据就对核心板led灯的状态进行一次翻转。 由于实验设备有限&#xff0c;只能想办法通过现有设备进行实验。 实现过程&#xff1a; 最开…

【学习笔记PPT摘录】lan.289.24.4-15

1.纪念品分组.双指针-01 #include <bits/stdc++.h> using namespace std;int A[40000];// 纪念品价值均衡// 把购来的纪念品进行分组 之和不超过整数 w// 每组只能有两个纪念品 希望分组的数目要少// 贪心的策略就是 每个较大的数找到一个 最大的较小的数使其能够小于w//…

基于注解以及配置类使用SpringIoc

四 基于注解方式使用SpringIoc 和 XML 配置文件一样&#xff0c;注解本身并不能执行&#xff0c;注解本身仅仅只是做一个标记&#xff0c;具体的功能是框架检测到注解标记的位置&#xff0c;然后针对这个位置按照注解标记的功能来执行具体操作。 本质上&#xff1a;所有一切的…

京东商品详情API接口(商品属性丨sku价格丨详情图丨标题等数据)

京东商品详情API接口是京东开放平台提供的一种API接口&#xff0c;通过调用该接口&#xff0c;开发者可以获取京东商品的标题、价格、库存、月销量、总销量、详情描述、图片等详细信息。下面针对您提到的商品属性、SKU价格、详情图以及标题等数据&#xff0c;做具体介绍&#x…

c++ 多文件编程

1.结构目录 声明类:用于声明方法,方便方法管理和调用&#xff1b; 实现类:用于实现声明的方法; 应用层:调用方法使用 写过java代码的兄弟们可以这么理解&#xff1a; 声明类 为service层 实现类 为serviceimpl层 应用层 为conlloter层 2.Dome 把函数声明放在头文件xxx.h中&…

STM32学习和实践笔记(5):时钟树

STM32一共有4个时钟源。外部时钟高低速各一个&#xff0c;内部时钟高低速各一个。 外部高速时钟是&#xff1a;4-16MHZ的HSE OSC。HS表示高速high speed. E表示外部的external。开发板该处安装的8M晶振。 外部低速时钟是&#xff1a;32.768KHz的LSI OSC。LS表示高速low speed…

1.JAVASE练习题(递归篇)

1.递归求解汉诺塔问题 public static void move(char pos1,char pos2) {System.out.print(pos1"->"pos2" "); }public static void hanoi(int n,char pos1,char pos2,char pos3) {if(n 1) {move(pos1,pos3);return;}hanoi(n-1,pos1,pos3,pos2);move(p…

六、数据呈现

目录 6.1 理解输入输出 6.1.1 标准文件描述符 1 STDIN &#xff08;0&#xff09; 2 STDOUT &#xff08;1&#xff09; 3 STDERR&#xff08;2&#xff09; 6.1.2 重定向错误 1 只重定向错误 2 重定向错误和数据 6.2 在脚本中重定向输出 6.2.1 临时重定向 6.2.2 永…

项目——boost搜索引擎

今天我们来写一个boost搜索引擎&#xff01; &#xff08;后续如果有更新&#xff0c;这个博客也会更新&#xff09; gitee连接:boost搜索引擎: boost搜索引擎 首先我们要介绍一下我们这个项目&#xff0c;我们项目的目的是通过我们的搜索引擎能够通过关键字查找到对应的网页…

中国工控网zggk.item_get API:电商行业数据获取的革新力量

随着信息技术的快速发展&#xff0c;电商行业已经深入渗透到各个领域&#xff0c;成为推动经济发展的重要力量。在这个过程中&#xff0c;数据获取成为了电商企业不可或缺的一环。中国工控网推出的zggk.item_get API&#xff0c;以其高效、准确的数据获取能力&#xff0c;成为了…

MySQL 快问快答

我写这篇文章的目的只有一个&#xff1a;通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉&#xff0c;通过回答这些问题&#xff0c;让我对脑子里的MySQL知识有更深的印象&#xff0c;当什么时候我的MySQL脑图不熟的时候&#xff0c;我就可以拿这篇文章来去巩固一下&am…

六、新闻主题分类任务

以一段新闻报道中的文本描述内容为输入&#xff0c;使用模型帮助我们判断它最有可能属于哪一种类型的新闻&#xff0c;这是典型的文本分类问题。我们这里假定每种类型是互斥的&#xff0c;即文本描述有且只有一种类型&#xff0c;例如一篇新闻不能即是娱乐类又是财经类&#xf…

mybatis-puls乐观锁

一&#xff0c;乐观锁&悲观锁 乐观锁: 顾名思义十分乐观,他总是认为不会出现问题,无论干什么都不去上锁!如果出现了问题,再次更新值测试 悲观锁;顾名思义十分悲观,他总是认为出现问题,无论干什么都会上锁!再去操作! 乐观锁实现方式: 取出记录时,获取当前version更新时,带上…

线程通信-java

线程通信 当多个线程操作共享多资源时&#xff0c;线程间通过某种方式相互告知自己的状态&#xff0c;以相互协调&#xff0c; 并避免无效的资源争夺。 线程通信的常见模型&#xff08;生产者与消费者模型&#xff09; 生产者线程负责生产数据 消费者线程负责消费生产者生…

Redis部署之主从

使用两台云服务器&#xff0c;在 Docker 下部署。 Redis版本为&#xff1a;7.2.4 下载并配置redis 配置文件 下载 wget -c http://download.redis.io/redis-stable/redis.conf配置 master节点配置 bind 0.0.0.0 # 使得Redis服务器可以跨网络访问,生产环境请考虑…

C语言 03 VSCode开发

安装好 C 语言的开发环境后&#xff0c;就需要创建项目进行开发了。 使用 IDE&#xff08;集成开发环境&#xff09;进行开发了。 C 语言的开发工具很多&#xff0c;现在主流的有 Clion、Visual Studio、VSCode。 这里以 VSCode 作为演示。 创建项目 安装 VSCode。 推荐直接在…

用c++实现串匹配问题、选择排序

5.2.2 串匹配问题 【问题】 给定两个字符串S和T&#xff0c;在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配&#xff09;&#xff0c;T称为模式。在文本处理系统、操作系统、编译系统、数据库系统以及 Internet 信息检索系统中&#xff0c;串匹配是使用最频…

MySQL中的存储过程详解(上篇)

使用语言 MySQL 使用工具 Navicat Premium 16 代码能力快速提升小方法&#xff0c;看完代码自己敲一遍&#xff0c;十分有用 拖动表名到查询文件中就可以直接把名字拉进来中括号&#xff0c;就代表可写可不写 目录 1.认识存储过程 1.1 存储过程的作用 1.2 存储过程简介…