Spring Boot Actuator、Spring Boot Actuator使用、Spring Boot Actuator 监控、Spring程序监控

SpringBoot四大核心之actuator——程序监控器

1. 添加 Spring Boot Actuator 依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2. 配置 Spring Boot Actuator

# 开启所有 Actuator 端点
management:endpoints:web:exposure:include: health,metrics,info## 启用 HTTP 请求计数和时间endpoint:metrics:enabled: true

3.查看应用的运行指标
Spring Boot Actuator 自动提供了一些监控指标,如 JVM 性能、HTTP 请求计数、数据库连接池等。你可以通过访问 Actuator 提供的 /actuator/metrics 端点来查看这些信息。

4. 查看 HTTP 请求的调用时间
Spring Boot Actuator 提供了 http.server.requests 指标,它会自动收集 HTTP 请求的计时数据,包括每个请求的持续时间、请求的数量、状态码等。
你可以访问以下 URL 来查看 HTTP 请求的调用时间和其他相关信息:
http://localhost:8080/actuator/metrics/http.server.requests

默认情况下,Actuator 会暴露一个 HTTP 端点,涉及了 JVM、HTTP 请求、Tomcat 相关性能等方面的数据,URL 为:http://localhost:8080/actuator/metrics
可以看到如下等信息:

1. HTTP 相关指标 (http.server.requests)
http.server.requests: 用于跟踪所有 HTTP 请求的统计信息(例如,请求的数量、延迟等)。
2. JVM 相关指标
jvm.buffer.count: 当前 JVM 中的缓冲区数量。
jvm.buffer.memory.used: 当前 JVM 缓冲区的已用内存。
jvm.buffer.total.capacity: 当前 JVM 缓冲区的总容量。
jvm.classes.loaded: 已加载的类数量。
jvm.classes.unloaded: 卸载的类数量。
jvm.gc.live.data.size: 当前垃圾回收堆中的数据大小。
jvm.gc.max.data.size: 最大的垃圾回收数据大小。
jvm.gc.memory.allocated: 已分配的 JVM 内存量。
jvm.gc.memory.promoted: 被提升到老年代的内存量。
jvm.gc.pause: 垃圾回收暂停时间。
jvm.memory.committed: 已提交的 JVM 内存。
jvm.memory.max: 最大可用的 JVM 内存。
jvm.memory.used: 当前已用的 JVM 内存。
jvm.threads.daemon: 当前守护线程的数量。
jvm.threads.live: 当前活动线程的数量。
jvm.threads.peak: 历史上出现的最大线程数。
jvm.threads.states: 线程的状态统计信息(例如,运行、阻塞等)。
3. 日志相关指标 (logback.events)
logback.events: 记录应用程序中的日志事件数量。
4. 进程相关指标
process.cpu.usage: 当前进程的 CPU 使用率。
process.start.time: 进程启动时间。
process.uptime: 进程的运行时间。
5. 系统相关指标
system.cpu.count: 系统的 CPU 核心数。
system.cpu.usage: 系统的 CPU 使用率。
6. Tomcat 相关指标
tomcat.cache.access: Tomcat 缓存的访问次数。
tomcat.cache.hit: Tomcat 缓存的命中次数。
tomcat.global.error: Tomcat 全局错误数。
tomcat.global.received: Tomcat 全局接收到的请求数量。
tomcat.global.request: Tomcat 全局请求数量。
tomcat.global.request.max: Tomcat 最大请求数。
tomcat.global.sent: Tomcat 全局发送的响应数量。
tomcat.servlet.error: Tomcat Servlet 错误数量。
tomcat.servlet.request: Tomcat Servlet 请求数量。
tomcat.servlet.request.max: Tomcat Servlet 最大请求数。
tomcat.threads.busy: Tomcat 正在处理请求的线程数量。
tomcat.threads.config.max: Tomcat 配置的最大线程数量。
tomcat.threads.current: 当前 Tomcat 线程数量。

Spring Boot Actuator 提供了大量有用的管理和监控端点。常用的包括:

健康检查 (/actuator/health)、度量指标 (/actuator/metrics)、日志管理 (/actuator/loggers)、线程信息 (/actuator/threaddump)、HTTP 跟踪 (/actuator/httptrace)、以及应用信息 (/actuator/info)

/actuator/beans:显示应用程序中所有的 Spring Bean
/actuator/env:显示应用程序的环境属性
/actuator/mappings:显示应用程序的 URL 映射
/actuator/trace:显示最近的 HTTP 请求跟踪信息。返回一个包含最近 HTTP 请求的 JSON 响应,包括请求方法、URL、状态码等
/actuator/auditevents:显示应用程序的审计事件
/actuator/loggers:显示和修改应用程序的日志记录器配置。返回一个包含日志记录器配置信息的 JSON 响应,可以修改日志记录器的级别。
/actuator/httptrace:显示最近的 HTTP 跟踪信息。返回一个包含最近的 HTTP 请求和响应跟踪信息的 JSON 响应,包括请求和响应头、状态码等。
/actuator/threaddump:显示应用程序的线程转储信息。返回一个包含应用程序线程转储信息的 JSON 响应,用于分析线程状态和问题


# Actuator Endpoints
# 启用所有端点,默认为true
management.endpoints.enabled-by-default=true
# 管理端点的基本路径,默认为/actuator
management.endpoints.web.base-path=/actuator
# 配置需要暴露的端点,*表示全部暴露
management.endpoints.web.exposure.include=*
# 配置需要排除的端点,如果需要排除特定端点,可以在此处指定
management.endpoints.web.exposure.exclude=
# 允许跨域访问的来源,*表示允许全部来源
management.endpoints.web.cors.allowed-origins=*
# 允许跨域访问的HTTP方法
management.endpoints.web.cors.allowed-methods=GET# Health Endpoint
# 显示详细的健康状态信息,always表示始终显示
management.endpoint.health.show-details=always# Info Endpoint
# 应用程序名称
info.app.name=我的应用程序
# 应用程序版本
info.app.version=1.0.0# Metrics Endpoint
# 启用度量指标端点
management.endpoint.metrics.enabled=true
# 启用缓存的度量指标
management.endpoint.metrics.cache.enabled=true
# 启用默认的度量指标
management.metrics.export.defaults.enabled=true# Beans Endpoint
# 启用显示所有 Spring Bean 的端点
management.endpoint.beans.enabled=true# Environment Endpoint
# 启用显示应用程序环境属性的端点
management.endpoint.env.enabled=true# Mappings Endpoint
# 启用显示应用程序 URL 映射信息的端点
management.endpoint.mappings.enabled=true# Trace Endpoint
# 启用显示最近的 HTTP 请求跟踪信息的端点
management.endpoint.trace.enabled=true# Auditevents Endpoint
# 启用显示应用程序审计事件的端点
management.endpoint.auditevents.enabled=true# Loggers Endpoint
# 启用显示和修改应用程序日志记录器配置的端点
management.endpoint.loggers.enabled=true# Httptrace Endpoint
# 启用显示最近的 HTTP 请求和响应跟踪信息的端点
management.endpoint.httptrace.enabled=true# Threaddump Endpoint
# 启用显示应用程序线程转储信息的端点
management.endpoint.threaddump.enabled=true

yml格式:

management:endpoints:# 默认启用所有端点。启用后,Spring Boot Actuator 会暴露所有可用的监控端点。enabled-by-default: trueweb:# 设置 Actuator Web 端点的基础路径,所有 Actuator 端点将以这个路径为前缀base-path: /actuatorexposure:# 配置暴露的端点,`*` 表示暴露所有端点include: "*"# 配置排除的端点,这里为空字符串表示没有排除任何端点exclude: ""cors:# 配置允许跨域的来源,这里允许所有来源allowed-origins: "*"# 配置允许的 HTTP 请求方法,`GET` 表示只允许 `GET` 请求allowed-methods: GET# 启用各个 Actuator 端点的配置endpoint:health:# 配置健康检查端点,`always` 表示无论健康检查的状态如何,都显示详细信息show-details: alwaysinfo:# 配置应用程序信息,显示应用程序的名称和版本app:name: "我的应用程序"  # 应用程序的名称version: "1.0.0"      # 应用程序的版本metrics:# 启用度量指标端点,`true` 表示启用 `/actuator/metrics` 端点enabled: truecache:# 启用缓存度量指标,`true` 表示启用缓存相关的度量数据enabled: trueexport:# 启用度量数据导出,`true` 表示启用默认的度量数据导出配置defaults:enabled: truebeans:# 启用显示所有 Spring Bean 的端点,`true` 表示启用 `/actuator/beans` 端点enabled: trueenv:# 启用显示应用程序环境配置的端点,`true` 表示启用 `/actuator/env` 端点enabled: truemappings:# 启用显示所有 URL 映射信息的端点,`true` 表示启用 `/actuator/mappings` 端点enabled: truetrace:# 启用显示最近的 HTTP 请求跟踪信息的端点,`true` 表示启用 `/actuator/trace` 端点enabled: trueauditevents:# 启用显示应用程序的审计事件的端点,`true` 表示启用 `/actuator/auditevents` 端点enabled: trueloggers:# 启用显示和修改应用程序日志记录器配置的端点,`true` 表示启用 `/actuator/loggers` 端点enabled: truehttptrace:# 启用显示 HTTP 请求和响应的详细跟踪信息的端点,`true` 表示启用 `/actuator/httptrace` 端点enabled: truethreaddump:# 启用显示应用程序线程转储信息的端点,`true` 表示启用 `/actuator/threaddump` 端点enabled: true

trace 端点和 httptrace 端点

  • /actuator/trace:在 Spring Boot 2.x 中,trace 端点默认已经被移除,取而代之的是 httptrace 端点
@Configuration
public class HttpTraceConfig {@Beanpublic HttpTraceRepository httpTraceRepository() {return new InMemoryHttpTraceRepository();}
}

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

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

相关文章

C++“STL之String”

​ &#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C入门 目录 ​编辑 前言 一、STL简介 1.1 STL是什么&#xff1f; 1.2 STL的版本&#xff08;这个不是很重要了解即可&#xff09; 1.3 STL的六大组件 二…

语言模型评价指标

1. BLEU&#xff08;Bilingual Evaluation Understudy&#xff09; 目标&#xff1a;衡量生成文本和参考文本之间的词汇相似性。 计算步骤&#xff1a; N-gram 匹配&#xff1a; 将生成文本和参考文本分解成 1-gram、2-gram、…、N-gram&#xff08;通常取到 4-gram&#xff…

2-199基于Matlab-GUI的混合粒子群算法求解TSP问题

基于Matlab-GUI的混合粒子群算法求解TSP问题&#xff0c;多种路径可选&#xff0c;可设置微粒数目、迭代次数&#xff0c;动态展示路径规划过程及迭代曲线&#xff0c;得到叫佳的路径&#xff0c;输出最优路径序列及最终距离。程序已调通&#xff0c;可直接运行。 2-199基于Ma…

【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享

学术科研啥的要用到很多数据&#xff0c;nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的&#xff0c;再来做一篇总结篇&#xff0c;也分享下练习数据跟工具&#xff0c;如果还是弄不了的&#xff0…

2412d,d语言中写汇编

原文 嗨,我只是想共享该要点,它展示了如何在ASM中用D编写你好. D中写汇编非常方便!这是我写的: extern(C) int main() {auto hip "hello D\n".ptr;size_t len 8;//write(1,消息,长度)asm {mov RDX, len;//缓冲长度mov RSI, hip;//消息缓冲mov EDI, 1;//Stdout文描…

VM虚拟机配置ubuntu网络

目录 桥接模式 NAT模式 桥接模式 特点&#xff1a;ubuntu的IP地址与主机IP的ip地址不同 第一部分&#xff1a;VM虚拟机给ubuntu的网络适配器&#xff0c;调为桥接模式 第二部分&#xff1a;保证所桥接的网络可以上网 第三部分&#xff1a;ubuntu使用DHCP&#xff08;默认&…

C++软件设计模式之观察者模式

观察者模式的动机意图 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了对象之间的一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都能够自动收到通知并进行相应的更新。 动机…

评分模型在路网通勤习惯分析中的应用——启发式搜索(2)

接上文《评分模型在路网通勤习惯分析中的应用——提出问题&#xff08;1&#xff09;》&#xff0c;本文内容主要针对上文提出的问题解决思路&#xff0c;详细讨论每一步骤中的具体处理措施。 4、问题的详细解决过程 4.1、对地图数据进行结构化 地图的本质是一种有向加权图结…

Mysql(MGR)和ProxySQL搭建部署-Kubernetes版本

一、Mysql(MGR) 1.1 statefulSet.yaml apiVersion: apps/v1 kind: StatefulSet metadata:labels:app: mysqlname: mysqlnamespace: yihuazt spec:replicas: 3serviceName: mysql-headlessselector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:affinity:p…

【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[3]--realloc

C语言中的realloc函数用于重新分配先前分配的内存块的大小,并可能更改其位置。然而,realloc函数的使用也存在一些陷阱与缺陷。 一、功能与常见用法 realloc 函数用于调整之前通过 malloc 或 calloc 分配的内存块的大小。它既可以增加也可以减少内存的大小,具体取决于请求的…

Lecture 17

10’s Complement Representation 主要内容&#xff1a; 1. 10’s 补码表示: • 10’s 补码表示法需要指定表示的数字位数&#xff08;用 n 表示&#xff09;。 • 表示的数字取决于 n 的位数&#xff0c;这会影响具体数值的解释。 2. 举例: • 如果采用 3 位补码&…

【Hackthebox 中英 Write-Up】Web Request | 分析 HTTP 请求和响应

欢迎来到我的writeup分享&#xff01;我希望大家不要只关注结果或答案&#xff0c;而是通过耐心阅读&#xff0c;尝试逆向工程理解背后的运作原理。在这里&#xff0c;你不仅能找到解题的思路&#xff0c;还能学到更多与Hack The Box等平台相关的技术和技巧&#xff0c;期待与你…

linux 点对点语音通话及直播推流实践一: linux USB声卡或耳机 基本配置

inux USB声卡或耳机 基本配置 工具安装查看设备录放音操作录音放音声音配置获取控制信息音量配置本文介绍 linux下alsa声音原件 工具使用方法,包括设备查询、声卡基本配置、录音放音等。 保证 alsa套件可正常操作和配置声卡,是实现SIP语音通话、音视频 采集及推拉流功能的基础…

《优势谈判》——阅读笔记

投入 思想准备&#xff1a;一个谈判是要双赢的&#xff0c;至少需要让对手这么认为&#xff1b;进行一场谈判&#xff0c;需要看到对面是否真的愿意和你谈判 谈判技巧 永远不要接受首次报份&#xff1b;如果对方临时变更了要求&#xff0c;则可以通过立刻要求对方做补偿等方…

PPT画图——如何设置导致图片为600dpi

winr&#xff0c;输入regedit打开注册表 按路径找&#xff0c;HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\PowerPoint\Options&#xff08;xx为版本号&#xff0c;16.0 or 15.0或则其他&#xff09;。名称命名&#xff1a;ExportBitmapResolution 保存即可&#xff0c;…

高性能网络框架--fstack

【欢迎关注编码小哥&#xff0c;学习更多实用的编程方法和技巧】 Fstack 是一个高性能的网络框架&#xff0c;主要用于构建高性能的网络应用程序&#xff0c;特别是在处理大量并发连接时。它基于 Linux 的 epoll 机制&#xff0c;使用了多线程和事件驱动的编程模型。以下是对 …

电商项目-数据同步解决方案(三)商品上架同步更新ES索引库

一、 需求分析和业务逻辑 主要应用技术有&#xff1a;Feign远程调用&#xff0c; 消息队列-RabbitMQ &#xff0c;分布式搜索引擎-ElasticSearch&#xff0c;Eureka&#xff0c;Canal 商品上架将商品的sku列表导入或者更新索引库。 数据监控微服务需要定义canal监听器&#x…

Unity游戏环境交互系统

概述 交互功能使用同一个按钮或按钮列表&#xff0c;在不同情况下显示不同的内容&#xff0c;按下执行不同的操作。 按选项个数分类 环境交互系统可分为两种&#xff0c;单选项交互&#xff0c;一般使用射线检测&#xff1b;多选项交互&#xff0c;一般使用范围检测。第一人…

前端正在被“锈”化

jeff Atwood 在 2007 年说&#xff1a;"any application that can be writen in JavaScript , willeventually be written in JavaScript"&#xff0c;翻译过来就是&#xff1a;“任何可以使用 JavaScript 来编写的应用&#xff0c;并最终也会由 JavaScript 编写”&a…