监管端点测试|学习笔记

简介: 快速学习监管端点测试

开发者学堂课程【SpringBoot 快速掌握 - 高级应用监管端点测试】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/613/detail/9323


监管端点测试


内容介绍

一、含义及功能

二、监控和管理端点


一、含义及功能

监控管理是一个重要的功能, spring-boot 通过引入 actuator 可以提供准生产环境下的应用监控和管理功能,可以实时的监控到应用的健康指标信息,配置信息以及自动审计等功能。


二、监控和管理端点

引入 actuator 模块测试 spring-boot 的应用监控和管理功能

1、创建项目

使用 spring 的初始化向导创建一个工程,Group 为 com.atguigu,Artifact 为 spring-boot-08-actuator,测试 actuator 功能。spring-boot 版本是1.5.12,选中 Devtools 工具以方便部署,加上 Web 应用。在 Ops 中选中 actuator 模块,点击 next,点击 Finish。

2、启动项目

启动后发现控制台会有很多的映射信息,比如 {[/info||/info.json],methods=[GET],表示把 info 映射到哪个方法发送 GET 请求。

image.png

这就是监控信息,通过它们可以监控到应用的一些状态,但是这是引入 actuator 模块才有的功能。如果不引入 actuator 模块,注掉以下代码:

org.springframcworh.boot

spring-boot-starter-actuator

image.png

重新启动应用,Mapped 只剩下默认的 /error 了。

3、访问监控信息

按照路径进行访问,比如 metrics 等指标。输入网址 localhost:8080/metrics,进入网址提示   There was an unexpected error (type=Unauthorized, status=401),表示没有进行授权,即要访问的这些监控信息默认是受保护的。再访问 localhost:8080/beans,也是被保护的。

//访问信息要先在 application.properties 中配置,management.security 默认是安全管理的,这里改为 false。

management.security.enabled=false

//ctrl+f9 重新启动应用,刷新网页,localhost:8080/beans 中就出现内容了。

监控和管理端点

端点名

描述

autoconfig

所有自动配置信息

auditevents

审计事件

beans

所有Bean的信息

configprops

所有配置属性

dump

线程状态信息

env

当前环境信息

health

应用健康状况

info

当前应用信息

metrics

应用的各项指标

mappings

应用@RequestMapping映射路径

shutdown

关闭当前应用(默认关闭)

trace

追踪信息(最新的http请求)

(1)、Beans 端点

Beans 监控容器中每个组件的信息,比如名字,类型,是否单例,有无其他依赖组件等等。

bean: "springboot.08Actaat.orkpplication",

aliases [ ].

scope: "singletan",

type:”com.at.guigu.sprirgboot08actuat.or.SpringbootO8actuatorkpplicaticn$$BhhancerBySpringOLIB$2c90d8ed”,

resource:"null".

dependencies: []

(2)、Health 端点

Health 监控应用健康状况信息

status:“UP,//up 表示当前正在上线启动

-diskSpace:{

status:”UP”,

total: 126682750976,

froe: 42881179648,

threshold 10485760

(3)、auditevents 端点

Auditevents 是审计事件相关的信息

{

events[]

}

//目前还没有审计事件

(4)、info 端点

Info 监控应用信息,info 中的内容是来自于application.properties 中以 info 开头的信息。书写代码:

Info.app.id=hello

Info.app.version=1.0.0

ctrl+f9 重启应用,在 localhost:8080/info 中就会显示出内容,如下:

-app{

id:hello

version:”1.0.0”

//如果把源码托管给 github。就要配置 github 的属性。新建git.properties 文件。

public class GitProperties-extends InfoProperties{

public GitProperties (Properties entries) { super(processEntries(entries)); }

//在文件中有 Gitproperties 配置类,这是一个属性文件,是继承infoproperties 的。只要所有属性继承 infoproperties,配置出的东西就能使用,如下属性都可以进行配置: comit.time,build.time,comit.id,branch 分支等。

git.branch=master

git.commit.id=xjkd33s

git.commit.time=2017-12-1212:12:56

//配置一些属性,comit.time 是提交时间,配置完成后,ctrl+F9 重启应用,如果没有启动起来可以手动启动。刷新页面,显示出了相关信息。

-git{

-comit{

Time: “2017-12-1212:12:56”,

Id:” xjkd33s”

}

Branch”master”

}

(5)、dump 端点

Dump 用来暴露程序运营中的线程信息,包括线程的名字,线程的 id,线程的状态,线程的堆栈信息等等。

threadName:”http-nio-8080-Acceptor-0" ,

threadId:95

threadState“RUNNABLE",

-stack Trace:{…}

(6)、Autoconfig 端点

Autoconfig 用来显示当前的自动配置信息。显示哪些自动配置起作用,哪些自动配置没有起作用。PositiveMatches{…}都是起作用的,NegativeMatches{…}都是没有起作用的。比如

auditAutoCanfiguration#authent icationAuditListener: {

-Matched [  

//表示自动配置没有匹配。

根据 Autoconfig 就可以知道容器中的自动配置类哪些生效,哪些没有生效。

(7)、Heapdump 端点

Heapdump 是一个文件下载,下载当前的内存快照,通过分析这些内存快照定位应用的一些问题。

(8)、Trace 端点

Trace 用来返回基本的 http 请求的追踪信息。其中包含了所有发过的请求信息,比如请求方式,请求路径,请求头的信息,请求响应的信息等。

timestanp:15257725301.

info:{

method“GET",

path "heapdunp",

- headers{

-reqaest {…}.

- response:{…}

//发送一个 404 请求,http://localhost:8080/aaaa,刷新 trace。

info:{

method“GET",

path "/aaaa",

- response:{  

X-Applicatiom Context: "application",

status:"404”

(9)、mappings 端点

Mappings 返回当前 web 应用每一个请求映射信息,比如 /error请求由谁处理,/error 请求生产 html 页面的由谁处理,每个 Controller 的请求映射信息也在此页面中。

(10)、Metrics 端点

Metrics 返回的是当前系统的监控指标,包含有内存大小,内存剩余用量,处理器数量以及线程相关的信息,加载类的信息等。

Mem:445337,

Mem.free:362141,

Processors:8,

Threads.peak:44,

Threads.daemon:27,

Threads.totalStarted:88,

Threads:29,

Classes:6379,

Classes.loaded:6461,

Classes.unloaded:82,

(11)、env 端点

Env 指应用当前环境信息,包括服务器的设置,系统环境变量的值,application 配置的相关信息,之前书写的配置文件内容都在此网页中。

profiles [ ],

-server.ports:{

local.server.port:8080

},

servletContextInitParans:{ },

systemProperties:{…}

systemEnvironment:{…}

-applicationConfig:[classpath:/application.properties]: {…}

Loggers 指日志信息,这里不做详细讲解。

(12)、Configprops 端点

Configprops 返回的是所有配置属性的信息报告。Prefix 指的是配置的前置,properties 是可以配置哪些。

//如果要禁用  metrics 端点,写法如下:按照属性路径配置。

endpoints.metrics.enabled=false

重新启动, metrics 就不能进行访问了。取消禁用就可以重新访问监控指标。

(13)、Shutdown 端点

Shutdown 可以远程关闭应用。

//打开端点

endpoints.shutdown.enabled=true

//关闭端点,使用 postman 给 localhost:8080/shutdown 发送 post 请求,发送 get 请求会不支持。发送后会出现{“message:”shutting down,bye…”},代表关闭应用。

以上就是各个监控和管理端点的作用。

相关文章
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
29天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
134 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
29天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
20 2
|
29天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
52 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
6月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
77 0
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
76 0
|
存储 Kubernetes 监控
PolarDB-X 混沌测试系统搭建赛题解析 | 学习笔记
快速学习 PolarDB-X 混沌测试系统搭建赛题解析
PolarDB-X 混沌测试系统搭建赛题解析 | 学习笔记
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
135 0
测试 API|学习笔记
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
下一篇
无影云桌面