TL;DR 技术提示 — Flux 时间范围
作者:Nora Mullen / 产品,用例,开发者
2020年6月26日
导航到
在这篇文章中,我们分享了一些关于在 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)
// ...