sentinel原理源码分析系列(六)-统计指标

调用链和统计节点构建完成,进入统计指标插槽,统计指标在最后执行的,等后面的插槽执行完,资源调用完成了,根据资源调用情况累计。指标统计是最重要的插槽,所有的功能都依靠指标数据,指标的正确与否,及时与否决定着系统的稳定性,正确性

上图是统计指标的类互动图

统计数据来源是指标统计插槽的increaseThreadNum/addPassRequest/increaseBlockQps,分别是增加线程数,通过请求数,阻塞数,可看出统计是累加

ENTRY_NODE 统计所有IN类型调用,专用于系统插槽; OriginNode统计调用方;DefaultNode统计Context下资源统计;ClusterNode统计全局,即所有Context下资源的统计

下面分析统计指标原理,下图是统计指标的原理图,sentinel用滑动窗口统计指标

上图展示是一个StatisticNode内的情况,其他的node,clusterNode,DefaultNode都继承StatisticNode,圆形/方形/三角形代表着某类型指标(pass,block等)一次增加数,一段时间多个线程调用资源产生多个的指标增加数,如一个窗口时段内多个图形,时间窗口时段内增加指标数落入时间窗口内,即WindowWrap对象内,限流插槽调用metric获取该时间窗口内所有指标增加值(LongAdder表示),累加在一起

下面以请求通过数代码为例子

上图,StatisticNode往ArrayMetric增加pass数,count,count通常=1,代表当前请求

上图,ArrayMetric获取当前窗口,往窗口增加pass数,一段时间可以有不同线程调用同一资源,窗口包含多个paas数

上图ArrayMetric,获取当前滑动窗口(currentWindow),窗口内包括该时段内所有增加指标值,MetricBucket是增加指标值载体,累加所有MetricBucket的pass,得到该时间窗口请求通过总数

StatisticNode 窗口时段内总述除以窗口时段,换算成秒,即一秒的pass数,后续的限流插槽适用该指标

相关推荐
廋到被风吹走5 天前
稳定性保障:限流降级深度解析 —— Sentinel滑动窗口算法与令牌桶实现
运维·算法·sentinel
Jasmine_llq7 天前
《P3572 [POI 2014] PTA-Little Bird》
算法·滑动窗口·单调队列·动态规划(dp)·多组查询处理·循环优化(宏定义 rep)
cur1es8 天前
【TCP 协议的相关特性】
java·网络·网络协议·tcp/ip·tcp·滑动窗口·连接管理
笨蛋不要掉眼泪9 天前
Sentinel 热点参数限流实战:精准控制秒杀接口的流量洪峰
java·前端·分布式·spring·sentinel
逆境不可逃10 天前
LeetCode 热题 100 之 76.最小覆盖子串
java·算法·leetcode·职场和发展·滑动窗口
笨蛋不要掉眼泪10 天前
Sentinel 流控规则详解:三种模式与三种效果实战指南
java·jvm·数据库·后端·sentinel
Jinkxs11 天前
Sentinel - 在 Dubbo 微服务中使用:Alibaba 生态无缝集成
微服务·sentinel·dubbo
笨蛋不要掉眼泪11 天前
Spring Cloud Alibaba Sentinel 从入门到实战:微服务稳定性的守护者
分布式·微服务·云原生·架构·sentinel
tod11311 天前
Redis Sentinel 高可用架构:从原理到 Docker 部署全解析
数据库·redis·docker·架构·sentinel
递归尽头是星辰13 天前
Sentinel + Spring Cloud Gateway 联动限流实战
系统架构·sentinel·限流·微服务治理·限流架构设计