我想根据下面描述的两个计数器设计一个SLI/SLO:
requestedCounter = 每次向下游服务发送请求时都会增加 Prometheus 计数器
confirmedCounter = Prometheus 计数器,每次收到确认通知下游服务已处理请求时都会递增
用 = 1- [ sum(rate(confirmedCounter)) / sum(rate(requestedCounter)) ] 来模拟不良事件/总事件是否有意义?或者使用像 count_over_time 这样的东西比 rate 更有意义?
任何其他建议也将不胜感激,因为我是 Prometheus SLI/SLO 的新手。
Prometheus counters 计算事件的数量。 count_over_time() 函数计算每个匹配时间序列存储在数据库中的原始样本的数量。因此此函数不适用于 Prometheus 计数器指标。您需要使用 increase() 来计算方括号中指定后视窗口中的事件数。例如,
increase(http_requests_total[1h])
计算过去一小时内的 http 请求数。
因此,对于您的情况,以下查询应返回过去一小时内失败请求的份额:
1 - increase(confirmedCouner[1h]) / increase(requestedCounter[1h])