SpringBoot:SpringBoot中如何实现对Http接口进行监控

news2024/9/22 7:06:51

一、前言

  Spring Boot Actuator是Spring Boot提供的一个模块,用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点(endpoints),用于获取应用程序的健康状态、性能指标、配置信息等,并支持通过 HTTP 或 JMX 进行访问。

  使用 Actuator 可以方便地了解应用程序的运行状况,监控等关键指标,并根据需要采取相应的措施。它为开发人员和运维人员提供了一种简单而有效的方式来监控和管理Spring Boot应用程序。例如:在项目中监控记录接口请求的相关信息,它对于提升系统稳定性、优化性能、快速定位问题以及保障数据安全等方面都起着至关重要的作用。

  本文将介绍一下Spring Boot Actuator以及代码示例,以及如何进行接口请求监控。

二、Spring Boot Actuator主要特性和功能

  1. 健康检查(Health Checks):通过 /actuator/health 端点暴露应用程序的健康状态。这可以包括数据库连接、外部服务可达性等多种健康指标。支持自定义健康检查指标。

    ①. 配置健康检查的详细程度(通过 management.endpoint.health.show-details 属性)。可配置的值有 never(默认,不显示详细信息)、when-authorized(详细信息将展示给通过认证的用户)和 always(对所有用户暴露详细信息)。

    ②. 可以通过 management.health.defaults.enabled 或针对特定组件的 management.health.xxxx.enabled 配置项来启用或禁用默认的健康指示器。

  2. 信息端点:通过 /actuator/info 端点展示应用程序的自定义信息,如版本号、构建信息等。允许在 application.properties 或 application.yml 文件中配置这些信息。

  3. 度量指标(Metrics):提供应用程序的度量指标,如 JVM 内存使用情况、系统 CPU 负载、HTTP 请求统计等。可以通过 /actuator/metrics 端点获取度量指标信息。

  4. 日志管理(Logging Management):通过 /actuator/loggers 端点动态调整日志级别。允许在运行时查看和修改日志配置,而无需重启应用程序。

  5. 环境属性(Environment Properties):通过 /actuator/env 端点展示配置的属性来源,如系统属性、环境变量、配置文件等。

  6. 线程转储(Thread Dump):通过 /actuator/threaddump 端点生成当前线程的转储快照,有助于诊断性能问题或死锁情况。

  7. HTTP 跟踪(HTTP Trace):通过 /actuator/httptrace 端点展示最近的 HTTP 请求和响应的跟踪信息,有助于分析请求处理流程。

  8. 审计事件(Audit Events):通过 /actuator/auditevents 端点访问应用程序的审计事件,如安全事件。

  9. JMX Beans:除了 HTTP 端点外,Actuator 还提供了 JMX Beans,允许通过 JMX 控制台来访问和管理应用程序。

  10. 关机和重启(Shutdown and Restart):在某些配置下,可以通过 /actuator/shutdown 或 /actuator/restart 端点来安全地关闭或重启应用程序。但请注意,这些功能通常不推荐在生产环境中使用,因为它们可能带来安全风险。

  11. 自定义端点(Custom Endpoints):允许开发者创建自定义的 Actuator 端点,以扩展监控和管理功能。

三、Actuator监控分类

Actuator 监控分成两类:原生端点和用户自定义端点

  ①. 自定义端点主要是指扩展性,用户可以根据自己的实际应用,定义一些比较关心的指标,在运行期进行监控。

  ②. 原生端点是在应用程序里提供众多Web接口,通过它们了解应用程序运行时的内部状况

原生端点又可以分成三类

  ①. 应用配置类 :可以查看应用在运行期的静态信息:例如自动配置信息、加载的 springbean 信息、yml 文件配置信息、环境信息、请求映射信息。

  ②. 度量指标类 :主要是运行期的动态信息,例如堆栈、请求连、一些健康指标、metrics 信息等。

  ③. 操作控制类 :主要是指 shutdown,用户可以发送一个请求将应用的监控功能关闭。

Actuator 提供了13 个接口,具体如下表所示

在这里插入图片描述

四、代码示例

1. 引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2. 添加application.properties配置

打开所有的监控点
management.endpoints.web.exposure.include=*

3. 定义一些请求接口

@GetMapping("/v1/test")
 public Object Test1() {
     String name = "hello";
     return name;
 }

 // 异常情况下
 @GetMapping("/v2/test2")
 public Object Test2() {
     String name = "hello new";
     System.out.println(1 / 0) ;
     return name;
 }

4. 浏览器访问

访问http://localhost:8027/actuator

在这里插入图片描述

①查看项目运行情况,通过访问 /actuator/health
  health 主要用来检查应用的运行状态,这是我们使用最高频的一个监控点。通常使用此接口提醒我们应用实例的运行状态,以及应用不”健康“的原因,比如数据库连接、磁盘空间不够等。

在这里插入图片描述

②.查看日志级别情况

在这里插入图片描述
  比如我们生产环境日志级别一般都是 info,但是现在有一个bug通过info级别无法排查,那么我们就可以临时修改 log 级别。

在这里插入图片描述

五、http接口监控

  1. 要使用Actuator的http接口监控功能,需要注册一个HttpTraceRepository类型的Bean
package com.example.yddemo.actuator;

import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HttpActuatorConfig {

    @Bean
    InMemoryHttpTraceRepository inMemoryHttpTraceRepository() {
        return new InMemoryHttpTraceRepository() ;
    }

}

  1. 添加application.properties配置
management.endpoints.web.exposure.include=httptrace
  1. 访问http://localhost:8027/actuator

  出现下面链接,表示配置成功

在这里插入图片描述
4. 访问http://localhost:8027/actuator/httptrace

请求一些上面我们定义的接口,然后访问/actuator/httptrace,展示如下信息
在这里插入图片描述

列如:timeTaken属性记录的是该接口请求的耗时情况(单位:毫秒)

  1. 自定义记录的信息,可以通过如下配置

访问/actuator/httptrace,展示的信息,也可以自定义展示需要的信息。

management.trace.http.include=

在这里插入图片描述

五、安全管理

1.在application.properties禁用接口

management.endpoint.health.enabled=false

2. 配置访问权限验证,这时再访问actuator功能时就会弹出登录窗口,需要输入账号密码验证后才允许访问。例如Spring Security,shiro等

3. 使用Filter对访问actuator做限制

  以上就是对SpringBoot中Actuator的介绍以及代码示例,了解了如何查看健康检查,如何使用Actuator来实现对Http接口进行监控。

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

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

相关文章

JWT(Json Web Token)在.NET Core中的使用

登录成功时生成JWT字符串目录 JWT是什么&#xff1f; JWT的优点&#xff1a; JWT在.NET Core 中的使用 JWT是什么&#xff1f; JWT把登录信息&#xff08;也称作令牌&#xff09;保存在客户端为了防止客户端的数据造假&#xff0c;保存在客户端的令牌经过了签名处理&#xf…

python3 ftplib乱码怎么解决

其实很简单。ftplib.FTP里面有个参数叫encoding。 如上图最后一行。所以在使用FTP时&#xff0c;主动指定编码格式即可。 ftp ftplib.FTP() ftp.encoding "utf-8" 再使用就可以了。

gif压缩大小但不改变画质的最佳方法,7个gif压缩免费工具别错过!

你会不会也碰到过当你需要在自媒体平台上上传gif文件时&#xff0c;你会发现网页端最大限制为15MB&#xff0c;而手机端最大限制为5MB。那么如何在不不改变画质的同时压缩gif大小呢&#xff1f;如今&#xff0c;由于其特殊的动画以及快速传输的特点&#xff0c;gif文件已经成为…

Kamailio-命令行指令kamctl与kamcmd

前文也有提到几种指令的用处&#xff0c;与web页面相比&#xff0c;它就是更原始、面向运维的&#xff0c;正常如果有管理页面也需要使用到&#xff1a; kamailio - SIP 服务器脚本kamdbctl - 创建和管理数据库的脚本&#xff0c;比如你使用MySQL作为其存储时就需要使用到这个…

看完这些内幕 你还会夹娃娃吗?

文&#xff5c;琥珀食酒社 作者 | 朱珀 听我一句劝 别再去抓娃娃了 因为你能抓多少 早已经被设计好了 只有娃娃机老板 才能爆赚80% 今天的这篇文章 来自粉丝阿凯的投稿 他不仅能让你创业避坑 还会告诉你 整个娃娃机行业的内幕 如此敢自揭行业内幕的老板 不是对这…

短视频矩阵搭建,用云微客获客更方便

你的同行都爆单了&#xff0c;你还在问什么是矩阵&#xff1f;让我来告诉你。短视频矩阵是短视频获客的一种全新玩法&#xff0c;是以品牌宣传、产品推广为核心的一个高端布局手段&#xff0c;也是非常省钱的一种方式。 1.0时代&#xff0c;一部手机一个账号&#xff1b;2.0时代…

Flutter Inno Setup 打包 Windows 程序

转载自&#xff1a;flutter桌面应用从开发配置到打包分发 - 掘金 (juejin.cn) 五.打包 1.创建 release 版本的应用 flutter build release 执行完成后&#xff0c; release包位置在项目的build->windows->runer文件夹中 2.应用程序分发 Windows 为 Windows 平台构建…

卷积神经网络之ResNet50迁移学习

数据准备 下载狗与狼分类数据集&#xff0c;数据来自ImageNet&#xff0c;每个分类有大约120张训练图像与30张验证图像。使用download接口下载数据集&#xff0c;并自动解压到当前目录。 全是小狗的图片 另一边全是狼的图片 加载数据集 狼狗数据集提取自ImageNet分类数据集&a…

迈巴赫S480升级原厂车载冰箱夏天是不是很有作用

迈巴赫 S480 升级原厂车载冰箱主要有以下作用&#xff1a; 1. 保鲜功能&#xff1a;可以在行车途中保持食物和饮料的新鲜度&#xff0c;特别是在长途旅行或炎热天气下&#xff0c;能让您随时享用清凉的饮品和新鲜的食物。 2. 提升舒适性&#xff1a;随时能够提供冷饮或冷藏的…

校园在校跑腿小程序源码系统 前后完全分离 带源代码包以及搭建教程

系统概述 随着移动互联网的飞速发展&#xff0c;校园生活也迎来了前所未有的便捷与高效。在校园内&#xff0c;学生们对于便捷服务的需求日益增长&#xff0c;从取快递、送餐到代买日常用品&#xff0c;各类跑腿服务逐渐成为校园生活的常态。为了满足这一市场需求&#xff0c;…

下载Windows版本的pycharm

Python环境搭建 第一步下载安装python 等待安装完成 验证python是否安装成功 Python开发工具安装部署 JetBrains: Essential tools for software developers and teams PyCharm: the Python IDE for data science and web development 下载社区版本的PyCharm 双击打开下载好的…

靶场练习 手把手教你通关DC系列 DC1

DC1靶场通关教程 文章目录 DC1靶场通关教程前言一、信息收集1.主机存活2.端口收集3.网页信息收集4.目录收集4.1 Nikto4.2 Dirb 信息收集总结 二、漏洞发现与利用1. 发现2. 利用 三、FlagFlag1Flag2Flag3Flag4Flag5(提权) 前言 本次使用的kali机的IP地址为192.168.243.131 DC1的…

25.无源蜂鸣器驱动设计

相对于有源蜂鸣器&#xff0c;无源蜂鸣器的成本更低&#xff0c;声音频率可控。而有源蜂鸣器因其内部 自带振荡源&#xff0c;只要加上适当的直流电源即可发声&#xff0c;程序控制较为方便。 &#xff08;1&#xff09;设计定义&#xff1a;设计一个无源蜂鸣器的驱动程序&…

电脑管理软件是什么?电脑管理软件能做什么?

电脑管理软件是一种专门设计用于管理和优化计算机系统的软件工具。它涵盖了多个方面&#xff0c;从系统维护、资源分配到安全防护&#xff0c;都有着广泛的应用。以下是对电脑管理软件及其功能的详细解析&#xff1a; 一、电脑管理软件的定义 电脑管理软件是一种管理类型的软…

【Ty CLI】一个开箱即用的前端脚手架

目录 资源链接基础命令模板创建命令帮助选择模板开始创建开发模板 开发背景npm 发布流程问题记录模板创建超时 更新日志 资源链接 文档&#xff1a;https://ty.cli.vrteam.top/ 源码&#xff1a;https://github.com/bosombaby/ty-cli 基础命令 1. npm 全局安装 npm i ty-cli…

【YOLOv8系列】(一)YOLOv8介绍:实时目标检测的最新突破

目录 引言 背景与发展历程 YOLOv8架构设计 1. 改进的特征提取网络 2. 多尺度特征融合 3. 新的激活函数 4. Attention机制 模型训练与优化 性能评估 应用案例 目标检测 图像分割 图像分类 姿势估计 旋转框检测&#xff08;OBB&#xff09; 优势与挑战 优势&…

点云曲面提取

csdn是不是有有什么大bing&#xff1f;gif只能上传5m我吐了在线GIF动图压缩 - docsmall 在线GIF动图压缩工具,在线GIF动图压缩软件 代码整理中

无线充电宝哪个牌子好?绿联、西圣、小米充电宝测评对比!

随着科技的不断进步和智能设备的普及&#xff0c;无线充电宝逐渐成为了现代人生活中的必需品。它们不仅方便了我们的日常充电需求&#xff0c;更减少了线缆的束缚&#xff0c;提高了使用的便捷性。在众多品牌中&#xff0c;绿联、西圣和小米作为市场上广受好评的无线充电宝品牌…

HTML5表单的自动验证、取消验证、自定义错误信息

1、自动验证 通过在元素中使用属性的方法&#xff0c;该属性可以实现在表单提交时执行自动验证的功能。下面是关于对元素内输入内容进行限制的属性的指定。 属性说明required输入内容是否不为空pattern输入的内容是否符合指定格式min、max输入的数值是否在min~max范围step判断…

C++之List模拟实现

目录 list的逻辑结构 构造函数 拷贝构造函数 赋值运算符重载 返回迭代器的初始位置 返回迭代器的最终位置 元素的插入 头插 尾插 删除元素 头删 尾删 清空整个链表 析构函数 正向迭代器 反向迭代器 整体代码 上期我们学写了list的基本操作&#xff0c;本期我…