获取 Datadog 仪表板中指标的最后一个值

Blu*_*ulb 1 metrics dashboard datadog

我正在搜索以在 Datadog 仪表板中显示 QueryValue 字段中指标的最后一个值。

目前,我正在使用

            "queries": [
              {
                "query": "max:blabla.mycount{$env}",
                "data_source": "metrics",
                "name": "query1",
                "aggregator": "last"
              }
            ]
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?对于这一系列 mycount [20,1,5,3,2],将取哪个数字?它真的是系列 (2) 中的最后一部还是系列 (20) 中最大的一部?

问候,模糊。

小智 5

因此,需要考虑 3 个级别的聚合:查询的时间聚合和空间聚合,然后是前端查询值小部件的聚合(这就是您要询问的内容)。现在,让我们通过考虑时间序列小部件来理解时间聚合,然后我们将看看查询值小部件之后会发生什么。

\n
\n

空间聚合是最简单的一种。这个想法是您有从多个应用程序/服务器提交的多个时间序列。如果 20 台计算机同时发送一个指标,我们应该选择显示哪个指标?您决定使用查询的聚合块,当前将其设置为max.

\n

这个想法是,您必须决定要显示指标的数十个或数百个实例中的哪一个。

\n

如果您不想担心空间聚合,则必须使查询足够具体,以便该指标仅存在 1 个时间序列。例如,CPU 指标的范围至少需要限定于主机名。对于容器指标,主机名是不够的,您至少需要容器 ID。对于数据库来说,应该有一个 db_identifier 或只能返回 1 个结果的东西。

\n
\n

现在对于时间聚合,让我们看一下文档:

\n
\n

由于Datadog以1秒的粒度存储数据,因此它无法在图表上显示所有真实数据。有关更多详细信息,请参阅如何在图表中聚合数据。

\n

对于 1 周时间窗口上的图表,需要将数十万个值发送到您的浏览器\xe2\x80\x94,此外,并非所有这些点都可以在占据屏幕一小部分的小部件上绘制出来。

\n

...

\n

Datadog 后端尝试将间隔数量保持在约 300 以下。

\n
\n

https://docs.datadoghq.com/dashboards/guide/query-to-the-graph/#proceed-to-time-aggregation

\n

例如,如果您查看 5 分钟的窗口,时间聚合将尽可能细化。5 分钟有 300 秒,因此图表上的每个间隔代表 1 秒。如果我们缩小到 10 分钟(600 秒),我们只能每 2 秒显示一次数据。因此每个桶将代表 2 个数据点(假设每秒提交一次指标)。

\n

在大多数情况下,您的指标每隔 15 秒提交一次。15*300=4500因此,直到几秒钟(一个多小时)你才会注意到任何时间聚合汇总。

\n

您可以使用该rollup函数来控制它,如文档中所述。如果您不想担心时间聚合,只需确保您的时间范围足够大,不会有任何分桶。

\n
\n

现在是最后一级聚合,即查询值小部件。您现在已经从后端获得了一组 300 个点,空间和时间聚合已经应用。在这 300 个数据点中,您想显示哪一个?您可以选择最后一个点,或者点的总和,或者其他什么。

\n
\n

希望这有帮助!

\n