Spring cloud微服务安全实战-7-7自定义metrics监控指标(2)
Gauge用来显示单词一个数的

勾选,这里编程仪表盘

设置仪表盘的最大值、最小值

保存

直接保存

保存成功的提示

返回

这就是我们做的一个简单的仪表盘

这个不适合我们的counter,因为没有最大值 ,上限。
可以拖动调整大小。

折线图
一段时间内访问量的曲线,波动情况。启动我们这个测试类,以1秒10次的频率去访问我们的订单接口。

让测试类在后面跑着,然后我们加一个面板



选择数据源

rate是用的最多的一个函数,在采集到的数据之上去做计算。rate就是计算指定范围内每秒的数据量。

按照我这个代码来说的话,我1秒钟要发10次请求。

创建订单的请求,每秒的请求数

方括号里面写计算多长时间内的。做一个平均。因为是10秒抓一次数据。

保存这个图形。

summary
百分比的数据分布统计图。

监控某一个服务的服务响应时间。
我的请求99%的请求都在指定的时间内有响应,就表示我的服务是健康的,剩下1%的请求有问题。我认为是正常的。。
监控99%的请求的响应时间,然后到达 一个预值后,给我发报警。这就可以用Summary来实现。
首先要声明一个Summary

summary是一个数据分布统计图。要告诉它你想统计的数据分布的分类数是多少。你要定义一堆指标。说着说是百分比。
给我统计出一个50%的分位数。这个值我允许有5%的误差。这是两个参数的意义。

90%的分位数,允许有1%的的误差。

加入我有10 个请求,响应时间分别是10毫秒、20、30、40......100毫秒.
50%的请求可以在50毫秒内返回。
0.9的分位数,应该是在啊90毫秒。90%的请求是可以在90毫秒内返回的。
他就是统计50%的请求在多少毫秒内返回。
90%的请求可以在多少毫秒内返回。
用这个Summary来统计请求的响应时间
注入requestLatency,覆盖preHandler请求之前的方法,要在请求之前记录下时间,请求之后再记录下时间。这样就知道请求花了多长时间了。

记录了请求之前的时间


修改orderController的方法 ,休眠时间设置成一个随机数。先添加一个lang3的包

请求 休眠子啊100到1000毫秒之间

启动orderAPI

测试类也启动起来。测试类这里的休眠就不sleep了。因为controller里面的方法已经sleep了。

查看拿到的数据。

count:当前指标一共收到了多少请求。38次请求。

sum:38次请求一共花了20秒。50

50%的请求都在509毫秒响应了。90%的请求在921毫秒内响应。

grafana内增加仪表展示
在grafana里面加个面板展示出来这些数据就可以了。



90%的请求的响应时间是927毫秒。



结束
Spring cloud微服务安全实战-7-7自定义metrics监控指标(2)的更多相关文章
- 《Spring Cloud微服务 入门 实战与进阶》
很少在周末发文,还是由于昨晚刚收到实体书,还是耐不住性子马上发文了. 一年前,耗时半年多的时间,写出了我的第一本书<Spring Cloud微服务-全栈技术与案例解析>. 时至今日,一年的 ...
- Spring Cloud微服务安全实战_00_前言
一.前言: 一直以来对服务安全都很感兴趣,所以就学习.这是学习immoc的 jojo老师的 <Spring Cloud微服务安全实战课程>的笔记,讲的很好. 课程简介: 二.最终形成的架 ...
- Spring cloud微服务安全实战_汇总
Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...
- Spring Cloud微服务安全实战_4-5_搭建OAuth2资源服务器
上一篇搭建了一个OAuth2认证服务器,可以生成token,这篇来改造下之前的订单微服务,使其能够认这个token令牌. 本篇针对订单服务要做三件事: 1,要让他知道自己是资源服务器,他知道这件事后, ...
- Spring Cloud微服务安全实战_4-3_订单微服务&价格微服务
实现一个场景: 订单微服务: POM: <?xml version="1.0" encoding="UTF-8"?> <project xml ...
- Spring cloud微服务安全实战 最新完整教程
课程资料获取链接:点击这里 采用流行的微服务架构开发,应用程序访问安全将会面临更多更复杂的挑战,尤其是开发者最关心的三大问题:认证授权.可用性.可视化.本课程从简单的API安全入手,过渡到复杂的微服务 ...
- Spring cloud微服务安全实战-6-8sentinel限流实战
阿里2018年开源的. 简单来说就是干三件事,最终的结果就是保证你的服务可用,不会崩掉.保证服务高可用. 流控 先从最简单的场景来入手. 1.引用一个依赖, 2,声明一个资源. 3.声明一个规则 注意 ...
- Spring cloud微服务安全实战-6-4权限控制改造
授权,权限的控制 令牌里的scope包含fly就有权限访问.根据Oauth的scope来做权限控制, 要让@PreAuthorize生效,就要在启动类里面写一个注解. 里面有一个属性叫做,就是在方法的 ...
- Spring cloud微服务安全实战-6-2JWT认证之认证服务改造
首先来解决认证的问题. 1.效率低,每次认证都要去认证服务器调一次服务. 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦. jwt令牌. spring提供了工具,帮你在微服务之间传递 ...
- Spring cloud微服务安全实战-5-7实现基于session的SSO(客户端应用的Session有效期)
授权模式改造成了Authorization code完成了改造的同时也实现了SSO.微服务环境下的前后端分离的单点登陆. 把admin的服务重启.刷新页面 并没有让我去登陆,直接就进入了首页. ord ...
随机推荐
- 事务@Transactional
在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例外(RunTimeExcep ...
- python+正则+多进程爬取糗事百科图片
话不多说,直接上代码: # 需要的库 import requests import re import os from multiprocessing import Pool # 请求头 header ...
- Kotlin协程第一个示例剖析及Kotlin线程使用技巧
Kotlin协程第一个示例剖析: 上一次https://www.cnblogs.com/webor2006/p/11712521.html已经对Kotlin中的协程有了理论化的了解了,这次则用代码来直 ...
- 51nod 1254 最大子段和 V2
N个整数组成的序列a[1],a[2],a[3],…,a[n],你可以对数组中的一对元素进行交换,并且交换后求a[1]至a[n]的最大子段和,所能得到的结果是所有交换中最大的.当所给的整数均为负数时和为 ...
- ZOJ - 3265: Strange Game (优化 二分图匹配)
pro:有一个长度为N的数组a[i],要求选择k[i]>0,使得b[i]=a[i]^k[i]%M中出现的不同数最多.N<=200, M<=1e9: sol:a^x%p的个数的有限的, ...
- datediff(date1,date2) 函数的使用
版权声明:本文为博主原创文章,未经博主允许不得转载. 在MySQL中可以使用DATEDIFF()函数计算两个日期之间的天数 语法: datediff(date1,date2) 注:date1和date ...
- STM32启动代码详细分析
最近需要学习iap的功能,因此离不开stm32的启动代码的分析,以前看了很多遍,都看不懂,读书百遍,其义自见,因此我有看了一遍,下面的文章,挺好的,因此转载: 在上电复位后,我们都知道会先运行启动代码 ...
- angular和datatables一起使用的时候,出现TypeError: Cannot Read Property "childNodes" Of Undefined In AngularJS
在anguglar中注入'$timeout' 然后: $timeout(function{},0,false);
- AFL Fuzz安装及完成一次简单的模糊测试
关于AFL fuzz AFL fuzz是一个模糊测试工具,它封装了一个GCC/CLang编译器,用于对被测代码重新编译的过程中进行插桩.插桩完毕后,AFL fuzz就可以给其编译过的代码输入不同的参数 ...
- 2019-2020-1 20199302《Linux内核原理与分析》第十一周作业
缓冲区溢出 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢 ...