在 Chronograf 仪表板中使用 Flux
此页面记录了早期版本的 InfluxDB OSS。 InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档。
Chronograf 是用于管理 InfluxData 平台的 Web 用户界面,可让您创建和自定义仪表板来可视化您的数据。可视化的数据使用 InfluxQL 或 Flux 查询检索。本指南将引导您完成在 Chronograf 仪表板单元格中使用 Flux 查询的过程。
在仪表板单元格中使用 Flux
Chronograf v1.8+ 和 启用 Flux 的 InfluxDB v1.8+ 是在仪表板中使用 Flux 的必要条件。
要在仪表板单元格中使用 Flux,请创建新单元格或编辑现有单元格,方法是单击单元格右上角的铅笔图标。在图表预览上方的源下拉列表右侧,选择 Flux 作为源类型。

仅当您的数据源启用了 Flux 时,Flux 源类型才可用。
这将提供模式、脚本和函数窗格。
模式窗格
模式窗格允许您浏览数据,并将特定测量、字段和标签的过滤器添加到您的 Flux 脚本中。

脚本窗格
脚本窗格是您编写 Flux 脚本的地方。在其默认状态下,脚本窗格包含一个可选的 脚本向导,它使用选定的选项为您构建 Flux 查询。生成的查询包括返回所需数据所需的所有相关函数和 模板变量。
函数窗格
函数窗格提供 Flux 查询中可用函数的列表。单击函数将将其添加到脚本窗格中脚本的末尾。将鼠标悬停在函数上方会提供该函数的文档以及指向深入文档的链接。
动态源
Chronograf 可以配置多个数据源。源下拉列表允许您选择要连接的特定数据源,但 动态源 选项也可用。使用动态源,单元格将从 Chronograf 当前连接的任何数据源查询数据。连接在 Chronograf 的配置选项卡下进行管理。
查看原始数据
当您构建 Flux 脚本时,每个函数都以特定于该函数的方式处理或转换您的数据。查看实际数据以了解其形状可能会有所帮助。数据可视化上方的查看原始数据切换按钮可在图表数据和表格形式显示的原始数据之间切换。

仅在使用 Flux 时,查看原始数据切换按钮才可用。
Flux 中的模板变量
Chronograf 模板变量 允许您使用 Chronograf 用户界面中提供的元素来更改单元格查询的特定组件。
在您的 Flux 查询中,像引用定义的 Flux 变量一样引用模板变量。以下示例使用 Chronograf 的 预定义模板变量dashboardTime
、upperDashboardTime
和 autoInterval
from(bucket: "telegraf/autogen")
|> filter(fn: (r) => r._measurement == "cpu")
|> range(
start: dashboardTime,
stop: upperDashboardTime
)
window(every: autoInterval)
预定义模板变量
dashboardTime
dashboardTime
模板变量表示范围数据的下限时间。它的值由仪表板中的时间下拉列表控制。它应用于定义 range()
函数的 start
参数。
dataSet
|> range(
start: dashboardTime
)
upperDashboardTime
upperDashboardTime
模板变量表示范围数据的上限时间。当使用绝对时间范围时,它的值由仪表板中的时间下拉列表修改。它应用于定义 range()
函数的 stop
参数。
dataSet
|> range(
start: dashboardTime,
stop: upperDashboardTime
)
作为最佳实践,始终在单元格查询中将
range()
函数的stop
参数设置为upperDashboardTime
。如果没有它,stop
默认设置为“now”,并且时间下拉列表中选择的绝对上限范围将不会被遵守,这可能会导致 InfluxDB 上不必要的负载。
autoInterval
autoInterval
模板变量表示仪表板的刷新间隔,并由刷新间隔下拉列表控制。它通常用于将 窗口化和聚合 操作中创建的窗口间隔与仪表板刷新对齐。
dataSet
|> range(
start: dashboardTime,
stop: upperDashboardTime
)
|> aggregateWindow(
every: autoInterval,
fn: mean
)
自定义模板变量
<% warn %> Chronograf 不支持在 Flux 查询中使用自定义模板变量。 <% /warn %>
使用 Flux 和 InfluxQL
在单个仪表板单元格中,Flux 和 InfluxQL 的使用是互斥的。但是,仪表板可能由不同的单元格组成,每个单元格都使用 Flux 或 InfluxQL。
此页对您有帮助吗?
感谢您的反馈!