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数,后续的限流插槽适用该指标

相关推荐
东阳马生架构17 小时前
Sentinel源码—9.限流算法的实现对比二
算法·sentinel
东阳马生架构17 小时前
Sentinel源码—9.限流算法的实现对比一
算法·sentinel
东阳马生架构2 天前
Sentinel源码—9.限流算法的实现对比
sentinel
东阳马生架构2 天前
Sentinel源码—7.参数限流和注解的实现二
java·sentinel
东阳马生架构2 天前
Sentinel源码—8.限流算法和设计模式总结一
算法·sentinel
东阳马生架构2 天前
Sentinel源码—8.限流算法和设计模式总结
sentinel
东阳马生架构3 天前
Sentinel源码—6.熔断降级和数据统计的实现二
java·sentinel
Pasregret3 天前
责任链模式:从 Sentinel 流控到审批流程的链式处理
sentinel·责任链模式
东阳马生架构5 天前
Sentinel源码—6.熔断降级和数据统计的实现
sentinel