微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在不重复计数的情况下分解 Datadog COUNT/GAUGE

如何解决在不重复计数的情况下分解 Datadog COUNT/GAUGE

我有一个脚本,每分钟查询一次我们的 CI (buildkite) 的 API,以获取所有构建代理的详细信息,并将指标发送给 Datadog 进行分析。然而,在 Datadog UI 中准确计数这些代理已被证明具有挑战性。

如果脚本为它看到的每个代理发出一个 COUNT 指标,那么当间隔超过一分钟时,代理将在 Datadog UI 中被重复计算,因为脚本每分钟运行一次并且看到(大部分)相同代理每次。该脚本可以计算每次运行看到的代理数量,并将其作为 GAUGE 发出,但随后我无法通过特定于代理的标签(队列等)分解 Datadog UI 中的计数。

我想我可以在每次运行时为每个代理发出一个值为 1 的 GAUGE,并在代理数组中添加一个带有数字索引值的人工 index 标签,并依赖于 Datadog UI对 index 值求和?当然,我可以使用代理 ID/主机,但 Datadog 按标签值的数量收费,而且我们将代理放在一个自动缩放组中,因此主机经常更改。

这看起来很糟糕 - 有更好的解决方案吗?我是不是想多了?

解决方法

您可以使用从其收集指标的代理的名称或 ID 标记指标(如果您尚未这样做)。然后在 Datadog 中,您可以编写一个按代理 ID 分组的查询并应用 count_not_null 函数:https://docs.datadoghq.com/dashboards/functions/count/

这基本上是劫持一个随机指标来提取报告该指标的代理的唯一计数,以假设代理的总数。不过,您将无法轻松地按队列进行分组,因此请确认这是否是您的用例的一个很好的解决方案。


你关于使用仪表的想法对我来说听起来不错。您可以发送一个名为 myagent.running 之类的新指标,它为您的每个代理发送值 1,并对所有仪表求和以获得计数。这实际上是指标 datadog.agent.running 的实现方式:https://docs.datadoghq.com/integrations/agent_metrics/#metrics

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。