考虑以下情况:
现在,我们监视诸如myService.errorType
之类的自定义错误计数指标。
这将为我们提供错误发生次数的确切数字-与特定实体无关:如果某个实体不能像100次一样被处理,则度量标准值为100
。
我想拥有的是基于UUID的不同指标。 示例:
然后,我希望有一个值为2
的度量标准-因为该过程仅对两个实体失败(而不是对30个失败,因为现在会报告)。
在寻找解决方案时,我发现可以使用标签。但是as the docs point并不适合这种用例:
标签不应源自无限制的来源,例如时代时间戳记,用户ID或请求ID。这样做可能会无限地增加您组织的指标数量,并影响您的帐单。
还有其他实现我目标的可能性吗?
答案 0 :(得分:0)
我现在通过代码验证状态并向指标添加标签来解决了这个问题:
occurrence:first
subsequent
通过这种方式,我只能在仪表板中过滤occurrence:first
。
答案 1 :(得分:0)
为了确保一切都清楚,您有一个名为myService.errorType
的度量标准,标签为entity
。此指标是一个计数器,每次实体出错时都会增加。然后,您将使用以下指标查询:
sum:myService.errorType{*} by {entity}
当您谈论UUID时,基数似乎很小(此处显示3)。这意味着您每小时都有少量可用的UUID。在这种情况下,将UUID添加到度量标准标记并不像具有无限数量选项的用户ID,时间戳等至关重要。
我邀请您添加此uuid标记,并检查metric summary page中的基数以确保其有效。
然后要获取错误所关注的UUID数量,可以使用类似以下内容的
count_not_null(sum:myService.errorType{*} by {uuid})
最后,或者,如果UUID的基数可以通过,我将邀请您使用日志或使用Christopher的解决方案,这似乎也限制了基数的增加。