 PromQL 从入门到精通到/发出的包这个数据的时候,都只能采集到当前的值,就像执行 ifconfig 命令,每 10 秒执行 一次,每次都看到一个巨大的当前值,而且一次比一次大。如果采集器不做计算,把这个值原封 不动上报给监控服务端,那计算增量、计算速率这个需求,就要放到服务端来实现了,所以服务 端必须要能对这种类型的数据建模抽象,也就是所谓的 Counter 类型。 时序数据 PromQL 就是查询时序数据的一种 sum(http_requests_total{method="GET"} offset 1d) 运算符 PromQL 支持基本的算术运算符和比较运算符,可以对不同的即时向量做运算,这为监控系统 带来了巨大的进步,算术运算符让很多计算不需要在采集端做了,可以轻易挪到服务端,而比较 运算符则为告警逻辑提供了支撑。 算术运算符  + (addition)  - (subtraction)  * (multiplication) 举一个例子来演示真实环境下的算术运算符的应用,比如之前的例子,对于内存可用率的指标 mem_available_percent 这个指标是采集器直接计算好的,如果采集器没有计算,而是上报了 原始指标 mem_available 和 mem_total,我们仍然可以使用 promql 计算出可用率指标: 逻辑上,是先根据 mem_available{app="clickhouse"} 找到相关指标数据,会找到5条,再根0 码力 | 16 页 | 2.77 MB | 1 年前3 PromQL 从入门到精通到/发出的包这个数据的时候,都只能采集到当前的值,就像执行 ifconfig 命令,每 10 秒执行 一次,每次都看到一个巨大的当前值,而且一次比一次大。如果采集器不做计算,把这个值原封 不动上报给监控服务端,那计算增量、计算速率这个需求,就要放到服务端来实现了,所以服务 端必须要能对这种类型的数据建模抽象,也就是所谓的 Counter 类型。 时序数据 PromQL 就是查询时序数据的一种 sum(http_requests_total{method="GET"} offset 1d) 运算符 PromQL 支持基本的算术运算符和比较运算符,可以对不同的即时向量做运算,这为监控系统 带来了巨大的进步,算术运算符让很多计算不需要在采集端做了,可以轻易挪到服务端,而比较 运算符则为告警逻辑提供了支撑。 算术运算符  + (addition)  - (subtraction)  * (multiplication) 举一个例子来演示真实环境下的算术运算符的应用,比如之前的例子,对于内存可用率的指标 mem_available_percent 这个指标是采集器直接计算好的,如果采集器没有计算,而是上报了 原始指标 mem_available 和 mem_total,我们仍然可以使用 promql 计算出可用率指标: 逻辑上,是先根据 mem_available{app="clickhouse"} 找到相关指标数据,会找到5条,再根0 码力 | 16 页 | 2.77 MB | 1 年前3
 告警OnCall事件中心建设方法白皮书
的唯一标识。比如 刚才的例子,告警策略的 ID 假设为 32,标签集是:[“name=cpu_usage_idle”, “host=host1”], 这两个时间戳产生的告警事件,哈希值都是一样的。 计算方法是: hash(32 + ["__name__=cpu_usage_idle", "host=host1"]) 从 event 到 alert 的这个收敛逻辑,我们叫做一级收敛。只有这个收敛逻辑还不够,告警信息还是比较 警事件可能会非常多,如上文所述, FlashDuty 会把事件聚合为告警,告警聚合为故障,最终通知的是故障。那具体如何聚合呢? 告警聚合 事件到告警的聚合比较容易,通常是用类似下面的算法来计算不同事件的关联关系: hash(32 + ["__name__=cpu_usage_idle", "host=host1"]) 这个值姑且称为事件 Hash,相同 Hash 的事件就被0 码力 | 23 页 | 1.75 MB | 1 年前3 告警OnCall事件中心建设方法白皮书
的唯一标识。比如 刚才的例子,告警策略的 ID 假设为 32,标签集是:[“name=cpu_usage_idle”, “host=host1”], 这两个时间戳产生的告警事件,哈希值都是一样的。 计算方法是: hash(32 + ["__name__=cpu_usage_idle", "host=host1"]) 从 event 到 alert 的这个收敛逻辑,我们叫做一级收敛。只有这个收敛逻辑还不够,告警信息还是比较 警事件可能会非常多,如上文所述, FlashDuty 会把事件聚合为告警,告警聚合为故障,最终通知的是故障。那具体如何聚合呢? 告警聚合 事件到告警的聚合比较容易,通常是用类似下面的算法来计算不同事件的关联关系: hash(32 + ["__name__=cpu_usage_idle", "host=host1"]) 这个值姑且称为事件 Hash,相同 Hash 的事件就被0 码力 | 23 页 | 1.75 MB | 1 年前3
 4 【王琼】容器监控架构演进 王琼 YY直播
参考文档:https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/ ⚫ • • • • ⚫ • • • ⚫ • • 计算指标需要多少内存 https://www.robustperception.io/how-much-ram-does-prometheus-2-x-need-for-cardinality-and-ingestion0 码力 | 23 页 | 2.17 MB | 1 年前3 4 【王琼】容器监控架构演进 王琼 YY直播
参考文档:https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/ ⚫ • • • • ⚫ • • • ⚫ • • 计算指标需要多少内存 https://www.robustperception.io/how-much-ram-does-prometheus-2-x-need-for-cardinality-and-ingestion0 码力 | 23 页 | 2.17 MB | 1 年前3
共 3 条
- 1













