当前位置: 首页 > 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.mrgr.cn/news/53660.html

相关文章:

  • IIC通信与MAX30102采集血样数据+V4L2框架
  • 【PFGA】二选一数选器
  • Qt学习笔记第21到30讲
  • 6-2.Android 对话框之基础对话框问题清单(UI 线程问题、外部取消、冲突问题、dismiss 方法与 hide 方法)
  • 【SpringBoot】16 文件上传(Thymeleaf + MySQL)
  • AFFINEQUANT: AFFINE TRANSFORMATION QUANTI ZATION FOR LARGE LANGUAGE MODELS阅读
  • 活着就好20241019
  • linux安装mysql数据库(最完整的yum源安装)
  • leetcode hot100 之【LeetCode 42. 接雨水】 java实现
  • day-69 使二进制数组全部等于 1 的最少操作次数 II
  • 微调小型Llama 3.2(十亿参数)模型取代GPT-4o
  • 微信定时消息发送 Python脚本神器
  • 11 django管理系统 - 管理员管理 - 分页复习(REVIEW)
  • 数字化转型中从企业架构到业务一致性:实现合规与战略目标的数字化转型路径
  • Leetcode 1135. 最低成本连通所有城市
  • [Godot4] 水底气泡的 gdshader
  • 引领企业数字化转型的核心驱动力:微服务架构与物联网
  • 【多模态】CLIP模型技术学习
  • 2024批量下载公众号文章内容/话题/图片/封面/视频/音频,导出excel和pdf,文章数据包含阅读数/点赞数/分享数/留言数
  • 普通java web项目转为maven项目
  • 原地移除数组中所有的元素val 含源码
  • 如何快速学会盲打
  • 2024.09.27校招 实习 内推 面经
  • 5步轻松上手!零基础也能掌握Go语言编程
  • 明日周刊-第23期
  • 性能测试中性能调优的基本原则有哪些