如何计算Datadog Screenboard中的事件

时间:2017-03-21 12:45:19

标签: datadog

我不理解DataDog事件指标之间的区别。我试图在我的信息中心中创建一个计数指示器,这样我现在可以发生某种类型事件的次数。

enter image description here

有许多名为some.event.name的事件,但无论我使用什么查询,它总是返回1

我已尝试过这些查询,

sum:some.event.name{*}

count_nonzero(sum:some.event.name{*})

count_not_null(sum:some.event.name{*})

我还尝试过其他聚合函数avg|max|min|sum,结果总是1

任何帮助都会受到高度关注。

3 个答案:

答案 0 :(得分:0)

屏幕截图中的自由文本编辑器用于度量标准查询。图表中的事件将作为叠加层添加,以显示事件随时间发生的时间。

截至目前,没有窗口小部件显示事件发生次数的单个值。但您可以使用事件时间轴窗口小部件,该窗口小部件将显示按状态分组的事件的时间轴,并在定义的时间段内进行分段。见下文:

enter image description here

答案 1 :(得分:0)

我意识到查询值仅适用于指标,因此要创建计数器,我们可以使用value: 1发出指标,然后使用rollup(sum, 60)函数对其进行计数。

dog.emit_point('some.event.name', 1)

sum:some.event.name{*}.rollup(sum, 60)

这里要理解的主要是DataDog不会检索给定时间范围内的所有点。实际上,正如McCloud所说,对于给定的时间范围,我们不会返回超过350点,这在创建计数器时要记住这一点非常重要。

当您从时间范围中的度量标准中查询值时,DataDog会返回一组表示实际存储点的点,而不是所有点;这些点的表示水平(据我所知)被称为粒度,你用这个rollup函数做的是定义这些点如何表示真实点,在这种情况下将是使用sum功能。

我希望这对某人有所帮助,我还在学习它。此致

答案 2 :(得分:0)

在客户端的 Ruby 中,我使用:

Datadog::Statsd.new(hostname, port)
datadog.increment(metric_name, tags: tag_list)

然后我有一个仪表板 Query Value 小部件,设置为“从显示的时间范围中获取 [Sum] 值”。

sum:some.event.name{*}.as_count()

我对此进行了测试,它似乎给出了正确的数字。这 .as_count() 似乎很关键。