快速掌握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: 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的意思时当扫描端点的时候就调用注解所标注的方法

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux进阶篇:使用Apache搭建文件服务器目录

Linux服务搭建篇&#xff1a;使用Apache搭建文件服务器目录 一、关于文件服务器 ​ 在一个项目中&#xff0c;如果想把公共软件或者资料共享给项目组成员&#xff0c;可以搭建一个简易的文件服务器来实现&#xff0c;只要是在局域网内的成员都可以通过浏览器或者wget命令来下…

书生·浦语大模型全链路开源体系-第5课

书生浦语大模型全链路开源体系-第5课 书生浦语大模型全链路开源体系-第5课相关资源LMDeploy基础配置LMDeploy运行环境下载internlm2-chat-1_8b模型使用Transformer来直接运行InternLM2-Chat-1.8B模型使用LMDeploy以命令行方式与InternLM2-Chat-1.8B模型对话设置KV Cache最大占用…

wps使用Latex编辑公式没有Latex formula

wps使用Latex编辑公式没有Latex formula 1. 下载CTEX2. 下载LaTeXEE3. 配置Miktex4. 配置latexee5. 用管理员权限运行latexeqedit.exe6. wps插入latex公式 1. 下载CTEX 下载CTEX网址&#xff0c;我下载的下图这个&#xff0c;下载完了之后运行exe文件安装ctex。 2. 下载LaTe…

视频国标学习

总体介绍 GB/T28181协议&#xff0c;全名叫《安全防范视频监控联网系统信息传输、交换、控制技术要求》&#xff0c;是由中国国家标准委员会发布的一种国家级的标准。它主要对视频监控系统的各个方面做了明确的规定&#xff0c;使得不同厂商生产的视频监控设备能够相互连通&am…

【C++】<入门>C++入门基础知识

C入门 1. 入门0. 本节知识点熟悉目的1. C关键字&#xff08;C98&#xff09; 2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.2 C支持函数重载的原理--名字修饰&#xff08;name Ma…

IntelliJ IDEA 2023中文--让编程更高效、更智能

IntelliJ IDEA 2023是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为Java开发者打造。它以其智能、高效和人性化的特点&#xff0c;帮助开发者更快、更好地编写代码。IntelliJ IDEA 2023支持多种语言和框架&#xff0c;包括Java、Kotlin、Spring等&am…

SpringCloud之LoadBalancer负载均衡器的简单使用

SpringCloud之LoadBalancer负载均衡器的简单使用 loadbalancer用于对提供服务的集群做一个节点的选取规则。 如图所示&#xff0c;load balancer集成在调用方 示例 创建loadbalance-base模块,并引入相关依赖 <dependencies><dependency><groupId>org.spr…

Unity笔记之下拉刷新列表

这样的效果&#xff1b; 代码&#xff1a; using System; using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class ScrollRectUpdateView : Mon…

解锁创意无限,体验全新Adobe Illustrator 2021 for mac/Win中文版

在数字化创意的浪潮中&#xff0c;Adobe Illustrator 2021中文版无疑是设计师们的得力助手。这款软件集高效、便捷、创新于一体&#xff0c;无论是Mac还是Windows用户&#xff0c;都能在其中找到属于自己的创意空间。 Adobe Illustrator 2021中文版延续了其强大的矢量图形处理…

5.2 mybatis之autoMappingBehavior作用

文章目录 1. NONE关闭自动映射2. PARTIAL非嵌套结果映射3. FULL全自动映射 众所周知mybatis中标签< resultMap >是用来处理数据库库字段与java对象属性映射的。通常java对象属性&#xff08;驼峰格式&#xff09;与数据库表字段&#xff08;下划线形式&#xff09;是一 一…

万界星空科技商业开源MES+项目合作+低代码平台

今天我想和大家分享的是一套商业开源的 MES制造执行管理系统。对于制造业而言&#xff0c;MES 是一个至关重要的系统&#xff0c;它可以帮助企业提高生产效率、优化资源利用、提高产品质量&#xff0c;从而增强市场竞争力。什么是 MES&#xff1f; MES 是指通过计算机技术、自动…

【数据库】表的增删改(CUD)

目录 一、insert 插入 1.单行插入&#xff1a; 2.多行插入&#xff1a; (1) insert into 插入&#xff1a; (2) replace into 替换插入&#xff1a; (3) 图片插入 &#xff1a; 二、update 修改 三、delete 删除 一、insert 插入 语法&#xff1a; INSERT INTO table_name…

尚硅谷html5+css3(4)浮动

1.浮动的概念 <head><style>.box1 {width: 200px;height: 200px;background-color: orange;/*通过浮动可以使一个元素向其父元素的左侧或右侧移动使用float属性设置子资源的浮动可选值&#xff1a;none默认值&#xff0c;元素不浮动left向左浮动right向右浮动注意…

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

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

系统开发实训小组作业week7 —— 优化系统开发计划

目录 1. 建立规则&#xff0c;仪式&#xff0c;流程&#xff0c;模式 2. 给好行为正面的反馈 3. 明确指出不合适的行为&#xff0c;必要时调整人员 在 “系统开发实训课程” 中&#xff0c;我们小组的项目是 “电影院会员管理系统” 。在项目的开发过程中&#xff0c;我们遇…

云原生:企业数字化转型的引擎与未来

一&#xff0c;引言 随着信息技术的飞速发展&#xff0c;企业数字化转型已成为时代的必然趋势。在这场深刻的变革中&#xff0c;云原生技术以其独特的优势&#xff0c;逐渐成为推动企业数字化转型的核心动力。本文将详细探讨云原生技术的内涵、发展历程&#xff0c;以及在企业数…

ASP.NET MVC企业级程序设计 (EF+三层架构+MVP实现查询数据)

目录 效果图 实现过程 1创建数据库 2创建项目文件 3创建控制器&#xff0c;右键添加&#xff0c;控制器 ​编辑 注意这里要写Home​编辑 创建成功 数据模型创建过程之前作品有具体过程​编辑 4创建DAL 5创建BLL 6创建视图&#xff0c;右键添加视图 ​编辑 7HomeContr…

ArcGIS Server 10.8.1安装

目录 单机部署 ArcGIS Web Adaptor 优点 缺点 ArcGIS Server 使用的端口 ArcGIS GeoAnalytics Server 使用的端口 官方安装文档&#xff1a; ArcGIS Server 系统要求—ArcGIS Enterprise | ArcGIS Enterprise 文档 单机部署 ArcGIS Web Adaptor 在此示例中&#xff0c…

【Unity】RPG小游戏创建游戏中的交互

RPG小游戏创建游戏中的交互 创建可交互的物体的公共的父类&#xff08;Interactable&#xff09;InteractableObject 类NPCObject 类PickableObject 类 创建可交互的物体的公共的父类&#xff08;Interactable&#xff09; InteractableObject 类 using System.Collections; u…

【深入理解Java IO流0x0A】NIO实战-网络聊天室

本篇博客将进行NIO编程实战&#xff0c;实现一个简单聊天室。 我们来通过 SocketChannel 和 ServerSocketChannel 实现一个 0.1 版的聊天室&#xff0c;先说一下需求&#xff0c;比较简单&#xff0c;服务端启动监听客户端请求&#xff0c;当客户端向服务器端发送信息后&#x…