我有一个礼品证书应用程序,每当有人激活证书时,它就会增加 Prometheus 计数器。
现在我想在 Grafana 板上输入简单的数字,显示过去 24 小时激活了多少证书。
我可以通过increase(gift_certificates_activated_total[24h])查询来做到这一点,但它会给出浮点结果,例如105.01287565915334.
但我发现如果我使用更改函数,它会给出精确的整数结果。查询是:changes(gift_certificates_activated_total[24h])并且它正好显示 105。
文件说
对于每个输入时间序列,changes(v range-vector) 返回其值在提供的时间范围内变化的次数作为即时向量。
据我了解,它适合仪表指标类型来获取仪表指标值的变化次数,而不适合计数器。但它似乎也适用于计数器。它显示与查询相同的结果floor(increase(gift_certificates_activated_total[24h]))。
Changes() 函数的使用是否合适?
如果您确定计数器在两次刮擦之间保持不变或增加 1,则可以使用 Prometheus 中的函数changes()代替函数。increase()如果计数器增加超过 1,则changes()返回的结果将低于increase()。
increase()由于插值,Prometheus 中的函数可能会返回整数计数器的小数结果。请在此处查看更多详细信息。
另请注意,Prometheus 中的changes(m[d])和可能会错过后视窗口之前的最后一个样本与窗口中的第一个点increase(m[d])之间的差异。d不过,上面提到的两个问题都在MetricsQL中得到了解决。(我是 MetricsQL 的作者)。
| 归档时间: |
|
| 查看次数: |
8644 次 |
| 最近记录: |