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

news/2024/10/22 20:17:07/

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

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

统计数据来源是指标统计插槽的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.ppmy.cn/news/1541141.html

相关文章

【最新华为OD机试E卷-支持在线评测】跳格子3(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

代码随想录第40天|

#include <bits/stdc.h> using namespace std;vector<list<int>> graph; // 删除局部 graph&#xff0c;使用全局 graph vector<vector<int>> res; vector<int> path; int N, M;void dfs(int index) {if (index N) {res.push_back(path);…

云上自动化运维及其应用

引言 随着云计算的快速发展&#xff0c;越来越多的企业选择将其业务迁移至云平台&#xff0c;以提高资源利用率、灵活性和可扩展性。在云环境中&#xff0c;传统的手动运维方式已经无法满足复杂系统和大规模应用的需求&#xff0c;自动化运维&#xff08;CloudOps&#xff09;…

[C++刷题] 基础小知识点(3) C++中ASCII码和字符的转换

C中ASCII码和字符的转换 例题 大家都知道有 26 26 26 个英文字母&#xff0c;其中 A 是第一个字母。现在请编程求出&#xff1a; M 是字母表中的第几个字母&#xff1f;第 18 18 18 个字母是什么&#xff1f; 输出一个数字和一个字母&#xff0c;使用换行隔开。 int mai…

git配置以及如何删除git

你努力学习和充实自己&#xff0c;除了提升自身的价值&#xff0c;最实际的是当遇到有喜欢的人和事的时候&#xff0c;除了一片真心&#xff0c;还有拿得出手的东西 作用 记录开发的历史&#xff0c;每次记录就是一个版本&#xff0c;而且可以回到历史的某个版本可以实现多人合…

【LeetCode】123.买卖股票的最佳时间

清晰明了的思路是解决问题的至上法宝。如何把一个复杂的问题拆成简单的问题&#xff0c;就是我们需要考虑的。 1. 题目 2. 思想 这道题虽然是难题&#xff0c;但是思想比较简单。 题目要求说至多买卖两次&#xff0c;也就是说&#xff0c;也可以买卖一次&#xff0c;这种情况…

智能听诊器:宠物健康教育的新工具

在宠物健康护理领域&#xff0c;智能听诊器正扮演着越来越重要的角色。它不仅仅是一个监测工具&#xff0c;更是宠物健康教育的新工具。通过与智能手机应用程序的结合&#xff0c;智能听诊器为宠物主人提供了一个互动学习的平台&#xff0c;让他们能够更好地理解宠物的生理信号…

【C语言】指针访问一维数组

指针&#xff0c;指到一个变量的地址。 那么对于一维数组&#xff0c;存储空间是连续的。指针指向数组中第一个元素的地址&#xff0c;所以可以通过移动指针进行依次访问。 数组理解起来也可以看作一个指针。main函数中第二行&#xff0c;此处没有加取地址符号&。 从第一个…