TL;DR 技术提示 — Flux 时间范围

导航到

在这篇文章中,我们分享了一些关于在 Flux 中使用时间范围的基础知识。

问题:时间范围在 Flux 查询中扮演什么角色?

答案:Flux 在查询 InfluxDB 时需要时间范围。“无界”查询非常消耗资源,作为保护措施,Flux 不会在没有指定范围的情况下查询 InfluxDB。

在您使用 from() 函数定义数据源之后,使用管道运算符 (|>) 将数据从您的数据源传输到 range() 函数。 (我们将在下面的具体示例中深入探讨。)

问题:range() 函数有哪些参数?

答案:range() 函数 有两个参数:start,结果中包含的最早时间,和 stop。对于每个参数,定义一个 相对绝对 时间。下面了解更多关于每个选项的信息。

问题:如何在 Flux 中设置相对时间范围?

答案:使用相对于 now() 的持续时间定义您的 Flux 查询的 相对 范围。持续时间以 持续时间文字 格式化,表示时间的长度,由一个整数部分和一个持续时间单位部分组成:例如,-1h 表示现在之前的一个小时时间范围。

Flux 查询中的相对时间范围示例

// Relative time range with start only. Stop defaults to now.
from(bucket:"example-bucket")
  |> range(start: -1h)
  // ...

// Relative time range with start and stop
from(bucket:"example-bucket")
  |> range(start: -1h, stop: -10m)
  // ...

问题:如何在 Flux 中设置绝对时间范围?

答案:使用时间戳定义您的 Flux 查询的 绝对 范围。时间戳以 日期和时间文字 格式化,由日期部分、时间部分和可选的时间偏移量部分组成:例如,2019-10-15T09:00:00 表示 2019 年 10 月 15 日。

绝对时间范围示例

from(bucket:"example-bucket")
  |> range(start: 2019-11-05T23:30:00Z, stop: 2019-11-06T00:00:00Z)
  // ...

问题:range() 函数是否包含与开始或结束时间匹配的点?

答案:对于 start 参数,结果 包含 与指定开始时间匹配的点。对于 stop 参数,结果 不包含 与指定结束时间匹配的点。

在下面的示例中,匹配 -12h 的点将被包含,而匹配 -15m 的点将被排除。

from(bucket:"example-bucket")
  |> range(start:-12h, stop: -15m)
  // ...