告警OnCall事件中心建设方法白皮书
中的告 警和故障建立完美的对应关系,不过从降噪收敛角度来看,够用了。 3、根据时间 + 文本相似度做收敛 文本相似度需要引入算法,但是算法总得有个规律,我们很想把某个故障相关的告警聚拢到一起,但是显 然,很难有个行之有效的规律,没有规律的算法效果自然好不到哪儿去。 既然没办法把告警自动收敛成故障,那就手工来做。一个故障关联的关键告警,还是相对容易区分的,只 要把关键告 告警聚合 事件到告警的聚合比较容易,通常是用类似下面的算法来计算不同事件的关联关系: hash(32 + ["__name__=cpu_usage_idle", "host=host1"]) 这个值姑且称为事件 Hash,相同 Hash 的事件就被聚合为一条告警。更复杂的是告警到故障的合并,当 前我们支持基于规则的聚合,后面会基于算法聚合: 比如基于告警规则标题做聚合,某一时刻,基础网络故障,有0 码力 | 23 页 | 1.75 MB | 1 年前3
PromQL 从入门到精通increase,无非就是最后一个值减去第一个 值,即965323899880-965304237246=19662634,很遗憾,实际结果是23595160.8,差别 有点大,显然这个直观理解的算法是错的。 实际上,increase 这个 promql 发起请求的时间是1661570909,时间范围是[1m],相当于告 诉Prometheus,我要查询1661570849(16615709 le="+Inf" 桶里,即值一定是大于60秒的,因为 le="+Inf" 这个桶没有上 界,导致我们无法区分这几个分位值。 1 2 3 4 5 6 7 8 下面我们假设一个指标及其数据,做一个算法演示,假设指标名是 http_request_duration_seconds_bucket ,其各个 bucket 的值如下: http_request_duration_seconds_b 9=900,第900个请求,显然,第 900个请求落在了10~20这个区间,即90分位的延迟是10秒~20秒,那具体是多少?其实是无 法知晓的,不过 Prometheus 的 histogram_quantile 有个估计算法,它假设落在各个 bucket 的数据是均匀分布的,即10~20这个区间的150个请求,延迟最小的那个请求是10s,延迟最大 的那个请求是20秒,总的第900个请求,就是这个区间的第50个请求,其延迟数据大概是:0 码力 | 16 页 | 2.77 MB | 1 年前3
共 2 条
- 1













