SprigBoot学习笔记(五)

news2024/10/7 8:23:51

监控

监控的意义
可视化监控平台
监控原理
自定义监控指标

监控的意义

监控服务状态是否宕机
监控服务运行指标(内存、虚拟机、线程、请求等)
监控日志
管理服务(服务下线)

监控的实施方式

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

总结:
1.监控的意义
2.监控方式


SpringBootAdmin

可视化监控平台

Admin服务端

<properties>
	<spring-boot-admin.version>2.5.4</spring-boot-admin.version>
</properties>
<dependencies>
	<dependency>
		<groupId>de.codecentric</groupId>
		<artifactId>spring-boot-admin-starter-server</artifactId>
	</dependency>
</dependencies>
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-dependencies</artifactId>
			<version>${spring-boot-admin.version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependencies>
	</dependencies>
</dependencyManagement>

Admin服务端

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

Admin客户端

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-client</artifactId>
	<version>2.5.4</version>
</dependency>

详情参看:http://giuhub.com/codecentic/spring-boot-admin

Admin服务端

server:
	port: 8080

设置启用Spring-Admin

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

Admin客户端

spring:
  boot:
    admin:
      client:
        url: http://localhost:8080
management:
  endpoint:
    health:
      show-details:  always
  endpoints:
    web:
      exposure:
        include: "*"

总结:

1.可视化监控平台----Spring Boot Admin
2.配置通过web端读取监控信息


actuator

在这里插入图片描述

监控原理

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

ID描述默认启动
auditevents暴露当前应用程序的审计事件信息。
beans显示当前程序中所有Spring bean的完整列表
caches暴漏可用的缓存。
conditions显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。
configprops显示所有@ConfigurationProperties的校队清单。
env暴漏Spring CofigurableEnviroment中的属性。
flyway显示已应用的Flyway数据库迁移。
health显示应用程序健康信息
httptrace显示HTTP追踪信息(默认情况下,最后100个HTTP请求/响应交换)。
info显示应用程序信息。
integrationgraph显示Spring Integration图。
loggers显示和修改应用程序中日志记录器的配置。
liquibase显示已应用的Liquibase数据库迁移。
metrics显示当前应用程序的指标度量信息。
mappings显示所有@RequestMapping路径的整理清单。
scheduledtasks显示应用程序中的调度任务。
sessions允许从SPring Session支持的会话存储中检索和删除用户会话。当使用SPring Session的响应式Web应用程序支持时不可用。
shutdown正常关闭应用程序。
threaddump执行线程dump。

Web程序专用端点

ID描述默认启动
headdump返回一个hprof堆dump文件。
jolokia通过HTTP暴露JMX bean(当Jolokia在classpath上时,不适用于WebFlux)。
logfile返回日志文件的内容(入如果已设置logging.file或logging.path属性)。支持使用HTTP Range头来检索部分日志文件的内容。
prometheus以可以由Prometheus服务器抓取的格式暴露指标。

启用指定端点

management:
  endpoint:
    health:  # 端点名称
      enabled: true
      show-details: always
    beans:   # 端点名称
      enabled: true

启动所有端点

managment:
  endpoints:
    enabled-by-default: true

暴露端点功能
    端点中包含的信息存在敏感信息,需要对外暴露端点功能时手动设定指定端点信息

属性默认
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include*
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.includeinfo,health

暴露端点功能

IDJMXWeb
audievents
beans
caches
conditions
configprops
env
flyway
health
headdumpN/A
httptrace
info

总结:
1.Actuator
2.端点功能开启与关闭
3.端点功能暴露


info端点指标控制

在这里插入图片描述

自定义监控指标

方式一:为info端点添加自定义指标

info::
  appName: @project.artifactId@
  version: @project.version@
  author: itheima

在这里插入图片描述
方式二:为info端点添加一些动态指标

@Component
public class AppInfoContributor implements InfoContributor {
	@Override
	public void contribute(Info.Builder builder) {
		Map<String,Object> infoMqp = new HashMap<>();
		infoMap.put("buildTime","2006");
		builder.withDetail("runTime",System.currentTimeMillis())
			.withDetail("company","传智教育");
		}
		builder.withDetails(infoMap);
	}
}

总结:
自定义info端点信息


health端点指标控制

在这里插入图片描述
为Health端点添加自定义指标

@Component
public class AppHealthContributor extends AbstractHealthIndicator {
	@Override
	protected void doHealthCheck(Health.Builder builder) throws Exception {
		boolean condition = true;
		if(condition){
			Map<String,Object> infoMap = new HashMap<>();
			infoMap.put("buildTime","2006");
			builder.withDetail("runTime",System.currentTimeMillis())
				.withDetail("company","路西法公司");
			builder.withDetails(infoMap);
			builder.status(Status.UP);
		}else{
			builder.status(Status.DOWN);
		}
	}
}

总结:

自定义Health端点信息


metrics端点指标控制

在这里插入图片描述
为Metrics端点添加自定义指标

@Service
public class BookServiceImpl extends ServiceImpl<BookDao,Book> implements IBookService {
	private Counter counter;
	public BookServiceImpl(MeterRegistry meterRegistry){
		counter = meterRegistry.counter("用户付费操作次数:");
	}
	@Override
	public boolean delete(Integer id){
		counter.increment();
		return bookDao.deleteById(id) > 0;
	}
}

总结:
自定义Metrics端点信息


自定义监控指标

自定义端点

@Component
@Endpoint(id="pay")
public class PayEndPoint {
	@ReadOperation
	public Object getPay(){
	//调用业务操作.最终return出去
	Map payMap = new HashMap();
	payMap.put("level 1",102);
	payMap.put("level 2",352);
	payMap.put("level 3",622);
	return payMap;
	}
}

在这里插入图片描述

总结:
自定义端点

大总结:
1.监控的意义
2.可视化监控平台-Spring Boot Admin
3.监控原理-Actuator
4.自定义监控指标

  • 系统端点添加监控指标
  • 自定义端点

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

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

相关文章

Node【五】内置模块 【http模块】

文章目录&#x1f31f;前言&#x1f31f;http模块&#x1f31f; 1.引入http模块&#x1f31f; 2.创建服务&#x1f31f; 3.添加头信息&#x1f31f; 4.搭建一个简单的服务器&#xff1a;&#x1f31f; 5.Request对象&#x1f31f; 6.Response对象&#x1f31f; 7.练习&#xff…

【力扣周赛】第340场周赛

【力扣周赛】第340场周赛6361&#xff1a;对角线上的质数题目描述解题思路6360&#xff1a;等值距离和题目描述解题思路6361&#xff1a;对角线上的质数 题目描述 描述&#xff1a;给你一个下标从 0 开始的二维整数数组 nums &#xff0c;返回位于 nums 至少一条 对角线 上的…

webgl-原生纹理贴图

踩坑&#xff1a; 1、图片不显示&#xff1a;图片分辨率为非2的幂次方&#xff0c;图片不能被渲染。图形变成黑方块 2的N次幂&#xff1a;1 2 4 8 16 32 64 128 256 512 1024 2048 4096…… 2、几何图形配置映射方式&#xff0c;顶点坐标和纹理坐标对应需要注意&#xff0c;构…

并行分布式计算 并行计算机体系结构

文章目录并行分布式计算 并行计算机体系结构并行计算机结构模型SIMD 单指令多数据流PVP 并行向量处理机SMP 对称多处理机MPP 大规模并行处理机DSM 分布式共享存储多处理机COW 工作站集群总结并行计算机访存模型UMA 均匀存储访问模型NUMA 非均匀存储访问模型COMA 全高速缓存存储…

OpenCV实战之广角相机拍照算法

拍照是手机中的一项重要功能&#xff0c;目前常见的千元机中都包含数个相机模组&#xff0c;能够实现虚化拍照、美颜、广角拍照、夜景等功能。手机是一个拥有巨大销量的电子产品&#xff0c;因此成为图像处理算法的一个重要落地场景。很多AI公司聚焦于此&#xff0c;如虹软、旷…

Docker已经创建运行启动的容器,如何修改容器中的环境变量env使长期有效

1.查看Docker Root目录 docker info | grep Docker Root[rootjenkins ~]# docker info | grep ‘Docker Root’ Docker Root Dir: /data/docker 2.查到容器的长id&#xff08;container id&#xff09; 方式一&#xff1a; docker inspect pdmaas | grep "Id"方式…

scikit-learn决策树算法笔记总结

1. scikit-learn决策树算法类库介绍 scikit-learn决策树算法类库内部实现是使用了调优过的CART树算法&#xff0c;既可以做分类&#xff0c;又可以做回归。分类决策树的类对应的是DecisionTreeClassifier&#xff0c;而回归决策树的类对应的是DecisionTreeRegressor。两者的参…

20230409英语学习

Dog Philosophy 101&#xff1a;What Dogs Teach Us About Life 狗狗教给我们的人生哲学 I recently was pleased to receive an honorary Doctor of Science Degree from the University of Guelph.As part of the ceremony I was asked to give a convocation address to the…

Openlayers(五)点位聚合Cluster

Openlayers&#xff08;五&#xff09;点位聚合Cluster 1.业务问题 由于点位在地图上显示过多&#xff0c;会造成页面卡顿、点位标注信息相互叠加导致看不清 优化后效果 不断放大层级 2.聚合类Cluster OpenLayers 中聚合是通过 ol.source.Cluster 实现&#xff0c;聚合的原…

如何写出10万+ Facebook 贴文?

想要创作一篇优秀的Facebook贴文&#xff0c;首先要考虑以下几个问题&#xff1a; 1.文案特点 一篇清晰简洁的文案有助于受众在有限的浏览时间内快速了解你想要展示的信息。根据以往经验&#xff0c;文案内容最好保持在20个汉字以内&#xff0c;加上链接描述最好也不要超过50…

学习Pycharm使用方法(一):Pycharm中Make available to all projects的含义是什么

Make available to all projects一、为什么要进行包管理二、怎么做1、命令行&#xff08;情况一&#xff09;第一步&#xff1a;先安装虚拟环境模块第二步 :激活虚拟 环境2、Pycharm(情况二)三、项目部署时批量导包一、为什么要进行包管理 Python中的第三方包提供了各种功能&a…

十五分钟带你学会 Docker

文章目录虚拟化与容器化什么是 DockerDocker 工作原理安装 DockerDocker 核心概念Docker fileImageContainerDocker 流程示例Docker 常用命令Dockerfile 常用指令Docker 网络通信Docker ComposeDocker Hub虚拟化与容器化 虚拟化技术是一种将计算机物理资源进行抽象、转换为虚拟…

【C++】类与对象(下)

系列文章 若想了解什么是类、封装的意义可以移步 【C】类与对象&#xff08;引入&#xff09; 若对六大成员函数或const成员函数有疑问的这篇文章可能可以帮到你 【C】类与对象&#xff08;上&#xff09; 目录 系列文章 前言 1.初始化列表 1.1概念 1.2特性 1.2.1必须使…

29考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略MATLAB程序-日前日内实时+需求响应+协调调度

资源地址&#xff1a; 29考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略MATLAB程序-日前日内实时需求响应协调调度-Matlab文档类资源-CSDN文库 参考文献&#xff1a; 考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略——金力 主要内容&…

Python入门教程+项目实战-9.3节: 字符串的操作方法

目录 9.3.1 字符串常用操作方法 9.3.2 获取字符串长度 9.3.3 字符串的大小写操作 9.3.4 删除字符串中的空白字符 9.3.5 字符串的子串查找 9.3.6 字符串的子串统计 9.3.7 字符串的子串替换 9.3.8 字符串的拆分函数 9.3.9 字符串的前缀与后缀9.3.10 知识要点 9.3.11 系…

一文教你认识分布式微服务开源框架

说到办公效率提质增效的问题&#xff0c;就需要了解分布式微服务开源框架了。因为这是助力企业做好数据管理、实现信息互通的得力助手和工具。在数字化发展进程越来越快的今天&#xff0c;实现办公自动化发展是不少用户的心愿和发展方向&#xff0c;采用分布式微服务开源框架可…

APK打包流程

&#xff08;图是从别地儿抠过来的&#xff0c;所以不清晰 。&#xff09; AAPT: 首先&#xff0c;安卓APP的资源这一块&#xff0c;会通过aapt进行一个编译&#xff0c;这个工具编译的时候&#xff0c;会首先会把我们的这个xml文件生成这一个R.java&#xff0c;然后再就是像m…

google账号注册流程升级了!2023年谷歌gmail邮箱帐号注册申请教程(完整版)

google账号注册升级了&#xff01; 2023年4月份google账号注册流程升级了&#xff0c;升级之前的版本是完成验证手机号码后才填写用户资料&#xff0c;升级之后的版本是需要先填写用户资料才能注册谷歌gmail邮箱帐号&#xff1b; 2023年谷歌gmail邮箱帐号注册申请教程 1、打开…

ChatGPT扩展系列之解决ChatGPT 被大面积封号的终极方案

ChatGPT扩展系列之解决ChatGPT 被大面积封号的终极方案 本节介绍了一个解决ChatGPT在中国大陆无法使用和担心被封号的问题的方法。近期有很多亚洲用户被封号,原因是有人滥用API接口或者批量注册账号,不符合官方规定。对于这个问题,提出了一个解决方法,可以在中国大陆无需翻…

【NLP】pyltp工具介绍、安装和使用代码+示例

【NLP】pyltp工具介绍、安装和使用pyltp 文章目录【NLP】pyltp工具介绍、安装和使用pyltp1. 介绍2. 使用2.1 分句2.2 分词2.3 词性标注2.4 命名实体识别2.5 依存句法分析2.6 词义角色标注2.7 完整示例3. 参考1. 介绍 什么是pyltp pyltp 是LTP的 Python 封装&#xff0c;提供了…