基于SpringBoot 实现指标监控及日志管理

添加Actuator功能

Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用,比如健康检查、内存使用情况统计、线程使用情况统计等。我们在SpringBoot项目中添加Actuator功能,即可使用Actuator监控

项目,用法如下:

在被监控的项目中添加Actuator起步依赖

org.springframework.boot spring-boot-starter-actuator

在配置文件中开启所有监控端点
#开启所有监控端点
management.endpoints.web.exposure.include=*

测试:
访问项目:http://localhost:8080/actuator

图片

可以看到有很多json格式的字符串,这些都是该路径下的相关资源信息,并且通过URL可以调用actuator的功能:
图片

例如查询日志信息数据,访问localhost:8080/actuator/loggers

图片

SpringBoot指标监控 Spring Boot Admin

Actuator使用JSON格式展示了大量指标数据,不利于我们查看,我们可以使用可视化工具Spring Boot Admin查看actuator生成指标数据。Spring Boot Admin是一个独立的项目,我们需要创建并运
行该项目。

  1. 创建Spring Boot Admin服务端项目

创建SpringBoot项目,添加SpringMVC和Spring Boot Admin服务端起步依赖


org.springframework.boot
spring-boot-starter-web


de.codecentric
spring-boot-admin-starter-server


org.springframework.boot
spring-boot-starter-test
test

修改配置文件

因为这里是服务端项目,要监控其他项目,因此要单独设置一个端口,就为9090吧,然后再自定义一下日志格式

端口号

server.port=9090
#日志格式
logging.pattern.console=%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) — [%-15thread] %cyan(%-50logger{50}):%msg%n

修改启动类

这里我们需要在启动类上方添加注解,证明这是一个指标监控服务端
package com.example.springbootadmin;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
// 开启SpringBoot Admin Server端
@EnableAdminServer
public class SpringbootadminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootadminApplication.class, args);
}
}

运行项目
图片
这里是还没有连接项目进行指标监控的

  1. 连接Spring Boot Admin项目

同样地,被监控项目添加Spring Boot Admin客户端起步依赖

de.codecentric
spring-boot-admin-starter-client

修改配置文件

应用服务 WEB 访问端口

server.port=8080
#Spring boot admin访问地址
spring.boot.admin.client.url=http://localhost:9090
#日志格式
logging.pattern.console=%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) — [%-15thread] %cyan(%-50logger{50}):%msg%n

运行项目

此时Spring Boot Admin即可连接被监控的项目,再刷新就可以看到有实例连接成功。

图片

SpringBoot日志管理

SpringBoot默认使用Logback组件作为日志管理。Logback是log4j创始人设计的一个开源日志组件。在SpringBoot项目中我们不需要额外的添加Logback的依赖,因为在 spring-boot-parent 中已经包含了Logback的依赖。

在 /resources 下添加Logback配置文件logback.xml

<?xml version="1.0" encoding="UTF-8" ?> %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${LOG_HOME}/server.%d{yy99-MM-dd}.log 30 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 10MB

注:Logback配置文件名为logback-test.xml或logback.xml,如果classpath下没有这两个文件,LogBack会自动进行最小化配置。

运行结果如下图:
图片

在代码中打印日志
package com.example.springbootdlogback.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class PrintLogController {
private final static Logger looger = LoggerFactory.getLogger(PrintLogController.class);
@RequestMapping(“/printlog”)
@ResponseBody
public String showInfo(){
looger.info(“记录日志”);
return “Hello Back!”;
}
}
如果日志过多,可以屏蔽一些包的日志,在配置文件中配置

屏蔽or包中的日志输出

#屏蔽org包中的日志输出

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

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

相关文章

从Spring进化为SpringBoot

目录 零.SpringBootApplication 一.起步依赖 二.自动配置 三.自动配置的原理 1.装配常见方案 【1】方案1&#xff1a;ComponentScan 组件扫描 【2】方案2&#xff1a;Import 导入 【3】使用第三方依赖提供的 EnableXxxxx注解 2.自动装配原理 3.实现starter 四.内置T…

olap分析型数据库

一、 1、clickhouse 特点&#xff1a; 分析型数据库 列式数据管理 高压缩率 不适用场景&#xff1a; 不适合联机事务处理 不支持更新删除单条记录 多表连接查询效率低 为什么这么快&#xff1a; 分区健、主键预排序、索引 压缩&#xff0c;减少I/O 向量化&#xff…

虚拟直播赋能文旅,蓝海创意云亮相文旅虚拟现实应用推广交流活动

3月21日&#xff0c;由文化和旅游部产业发展司主办&#xff0c;中国信息通信研究院、北京市石景山区文化和旅游局、中国动漫集团有限公司承办的文化和旅游虚拟现实应用推广交流活动在首钢一高炉SoReal科幻乐园33 Meta Club举办。蓝海创意云应邀参与此次活动&#xff0c;携vLive…

MySQL索引的创建与基本用法

文章目录 MySQL索引MySQL索引的类型与创建方法基础索引 唯一索引**唯一索引的创建** ******注意唯一索引允许有空值&#xff08;注意和主键不同&#xff09;。如果是用组合索引创建&#xff0c;则列值的组合必须唯一。添加唯一键将自动创建唯一索引。*** ***主键索引组合索引**…

Java毕业设计 基于springboot医院挂号系统 医院管理系统

Java毕业设计 基于springboot医院挂号系统 医院管理系统 springboot医院挂号系统 医院管理系统 功能介绍 用户&#xff1a;登录 首页 个人资料 修改密码 门诊管理 用户挂号 医生&#xff1a;登录 首页 个人资料 修改密码 门诊管理: 用户挂号 处方划价 项目划价 项目缴费 项目…

C++多线程并发学完后,该学什么呢?

概述 如何安排知识点的学习次序&#xff0c;有很多做法&#xff0c;下面提供一种思路。 答&#xff1a;C在多线程学完后&#xff0c;可以学网络。 相当于这么一个学习及实际开发中常见演进过程&#xff1a; 单线程、无网络的程序&#xff1a; 一家公司&#xff0c;一个员工…

多级页表查询

说明一下这个三级页表的查询&#xff0c;会需要上面的L2,L1,L0 如果在二级页表level就是2&#xff0c;PGSHIFT是12&#xff0c;那么就是往左移129*2位置&#xff0c;在&9bit就得到L2&#xff0c;其他以此类推 也表查询&#xff0c;首先有跟页表的地址pagetable&#xff0c;…

美团到店-后端开发一面

1. 介绍一下spring的两大核心思想 2. 介绍一下java的代理&#xff0c;以及动态代理和静态代理的区别 3. spring动态代理是如何生成的&#xff0c;jdk动态代理和cglib的区别 4. 介绍一下synchronized关键字、以及synchronized锁和lock的区别 5. 讲一下java中synchronized的锁升级…

测径仪:大小通吃的“直径判官”

嗨&#xff0c;大家好&#xff01;今天我要给你们介绍一个超级厉害的玩意儿——在线测径仪&#xff01;它可不是一般的测量工具&#xff0c;它是那个能让直径无处遁形的“直径判官”&#xff01; 想象一下&#xff0c;有了在线测径仪&#xff0c;你就像是拥有了一双超级敏锐的“…

elasticsearch的数据搜索

DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户…

docker容器下部署hbase并在springboot中通过jdbc连接

我在windows的docker中部署了一个hbase服务&#xff0c;然后用springboot连接到此服务并访问数据。 详情可参考项目中的README.md。项目中提供了用于构建镜像的dockerfile&#xff0c;以及测试代码。 项目连接&#xff1a;https://gitee.com/forgot940629/hbase_phoenix_spring…

【Windows 常用工具系列 15 -- VMWARE ubuntu 安装教程】

文章目录 安装教程镜像下载 工具安装 安装教程 安装教程参考链接&#xff1a;https://blog.csdn.net/Python_0011/article/details/131619864 https://linux.cn/article-15472-1.html 激活码 VMware 激活码连接&#xff1a;https://www.haozhuangji.com/xtjc/180037874.html…

一下想要邮寄很多快递,该怎么邮寄呢?

我们都知道淘宝网上开店的经常会邮寄很多快递&#xff0c;但是这么多快递不可能一下子拿到快递驿站去邮寄吧&#xff0c;但是快递员又不上门取件可怎么办呀&#xff0c;这可真是让人伤透了脑筋了&#xff0c; 我们都知道我们所在的区域一般都会有快递员来承揽我们所在区域的快递…

Jenkins安装 Linux 更换镜像 安装插件

Jenkins安装 Linux 更换镜像 安装插件 前言 下面叙述了三种jenkins安装的方式,jenkins安装之前必须有java环境因为他是java写的… yum安装只能安装最新版本的jenkins,但是jenkins是java写的所以他强依赖java版本,当你的服务器的java版本与jenkins版本冲突时还需要给jenkins重…

烟火AI识别检测算法在新能源汽车充电桩站点的应用方案

新能源汽车作为现代科技与环保理念的完美结合&#xff0c;其普及和应用本应带给人们更加便捷和绿色的出行体验。然而&#xff0c;近年来新能源汽车充电火灾事故的频发&#xff0c;无疑给这一领域投下了巨大的阴影。这不禁让人深思&#xff0c;为何这一先进的交通工具在充电过程…

C语言复杂度(个人笔记)

时间复杂度主要衡量一个算法的运行快慢. 空间复杂度主要衡量一个算法运行所需要的额外空间. 时间复杂度 算法中的基本操作的执行次数&#xff0c;为算法的时间复杂度. 只需要大概执行次数&#xff0c;我们使用大O的渐进表示法。(看谁对数学表达式的影响最大) 空间复杂度 是…

MySQL双机热备份操作

文章目录 概要数据库服务器准备1.MySQL数据库主服务器。2.备份数据库服务器数据准备主服务器dump数据从数据库导入数据配置双机热备份主服务配置从服务配置概要 对于已经在运行的MySQL数据库如何进行双机热备份?本文章详细介绍如何操作进行MySQL双机热备份。 数据库服务器准…

【NC201610】Game

题目 Game 分解质因数&#xff0c;博弈 思路 博弈论一般是两极分化的&#xff0c;要么有思路&#xff0c;相当简单&#xff1b;要么没思路&#xff0c;死活想不出来。 所以一般先找规律&#xff0c;然后大胆猜想&#xff0c;最后提交验证 这道题有什么规律呢&#xff1f; 可以…

python 教你如何创建一个自定义库 colorlib.py

目录 Colorlib 生成代码 模块代码 导入测试 测试一 测试二 应用测试 颜色列表 colorList 随机颜色元组 randcolorTuples 随机颜色字串 randcolorStrings Color类测试 测试一 测试二 题外话 Colorlib 有没有碰到过这样的场景&#xff1a;写代码时想要用上丰富的色…

图像几何变换(仿射变换和透视变换...)及python-opencv实现

文章目录 图像变换类型仿射变换透视变换python-opencv实现参考文献 图像变换类型 图像几何变换主要包括以下几种类型&#xff1a; 平移&#xff08;Translation&#xff09;&#xff1a;将图像在水平或垂直方向上移动&#xff0c;不改变图像的尺寸和形状。缩放&#xff08;Sca…