当前位置: 首页 > news >正文

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

正所谓大道至简,滑动窗口原理看了一段时间,想不到实现原理是这么简单

http://www.lryc.cn/news/463442.html

相关文章:

  • 【代理模式使用场景】
  • ARM-8 代码还原动态调试之 pstree 条件表达式
  • Spring Boot技术栈在电影评论网站中的应用
  • DDOS防护
  • 【Vue】Vue(九)OptionsAPI与CompositionAPI的区别
  • MySQL 【日期】函数大全(四)
  • Jlink 直接读取单片机数据
  • VScode运行C语言终端输出中文乱码问题解决方案
  • Leetcode刷题. 贪心算法
  • 强化学习的数学原理-01基本概念
  • D41【python 接口自动化学习】- python基础之函数
  • 思迅商云8修改最大找零金额
  • Lumerical学习——分析工具(Analysis tools)
  • 思迅商云8会员积分全部清0
  • $nextTick原理
  • python办公:批量PDF合并—通用版
  • 人工智能研究创造出新型蛋白质
  • blender 金币基站 建模 学习笔记
  • eggjs sequelize egg-sequelize-auto自动从零生成一个数据表 自动创建model
  • 解决低版本pytorch和onnx组合时torch.atan2()不被onnx支持的问题
  • javaWeb项目-ssm+jsp房屋出租管理系统功能介绍
  • 【R语言】gadm全球行政区划数据库
  • 3万字66道Java基础面试题总结(2024版本)
  • go 环境安装
  • stereo-seq 细胞、捕获到的分子及其特征的统计描述
  • ceph rook-ceph 部署 cephobjectstore 失败
  • 1791. 找出星型图的中心节点
  • 微调小型Llama 3.2(十亿参数)模型取代GPT-4o
  • 【JavaEE】【IO】文件操作
  • commonjs和esmodule的导入导出细节