Flux 0.7 技术预览
作者:Tim Hall / 用例,开发者
2018 年 11 月 09 日
导航至
InfluxDB 1.7 版本发布之际,我们提供了对 Flux 技术预览的集成访问。如果您还没有跟上我们的最新动态,Flux 是 InfluxData 为查询、分析和与数据交互而设计的新功能数据脚本语言。
您可能还记得我们最近关于构建 Flux 语言这一合作努力的几篇博客
随着 Chronograf 1.7 的发布,现在可以通过 Flux 构建查询的用户界面已经可用。这些都很好,但如果您没有跟上 Flux 开发公告和语法的更新,本文将解释关键概念,并指导您开始使用 Flux 以及创建第一个查询所需的步骤。
启用 Flux
Flux 0.7 技术预览包含在 InfluxDB 1.7 中,但默认情况下是禁用的。通过在 InfluxDB 配置文件(通常:Linux 上的 /etc/influxdb/influxdb.conf 和 macOS 用户的 /usr/local/etc/influxdb.conf)的 [http] 部分,将 flux-enabled
设置为 true
来启用 Flux。
[http]
flux-enabled = true
关键概念
在深入语法之前,您应该了解一些新概念。
桶
桶 是一个命名位置,用于存储具有保留策略的数据。它与 InfluxDB v1.x 的“数据库”类似,但结合了数据库和保留策略。当使用多个保留策略时,每个保留策略都有自己的桶。
Flux 的 from()
函数,它定义了一个 InfluxDB 数据源,需要一个 bucket
参数。在技术预览中,使用以下桶命名约定,将数据库名和保留策略合并为一个单一的桶名
桶命名约定
// Pattern
from(bucket:"<database>/<retention-policy>")
// Example
from(bucket:"telegraf/autogen")
数据表
Flux 以表格格式返回数据。这意味着在每个函数或操作评估后,都会返回一个或多个包含数据的表格。Flux 广泛使用管道向前操作符(|>
)来链接操作。管道向前操作符将这些表格传递到下一个函数或操作,在那里它们会进一步处理或操作。
从 InfluxDB 查询数据
编写第一个 Flux 脚本并查看实际结果的最简单方法是使用 Chronograf 的数据探索器。打开数据探索器,在图占位符上方的源下拉菜单右侧,选择 Flux 作为源类型。
此操作修改了用户界面,以提供访问 模式、脚本 和 Flux 函数 选项卡的功能。模式选项卡允许您通过度量、字段和标签来探索您的数据模式。脚本选项卡是您编写Flux脚本的地方,Flux 函数选项卡提供了一组可在您的Flux脚本中使用的Flux函数。将鼠标悬停在函数上会显示有关使用该函数的帮助信息。
要构建您的Flux脚本,可以使用脚本向导,它允许您快速选择一个桶、度量、一个或多个字段和一个函数以开始编写,或者直接点击脚本选项卡。输入辅助功能会在构建查询时提供语法建议。
使用脚本向导可以减少创建新查询时的初始输入量。
上面的选择会将以下Flux查询输入到脚本编辑器中
from(bucket: "telegraf/autogen")
|> range(start: dashboardTime)
|> filter(fn: (r) => r._measurement == "cpu" and (r._field == "usage_system"))
|> window(every: autoInterval)
|> mean()
|> group(except: ["_time", "_start", "_stop", "_value"])
完成!这只是开始,应该能让您尝到Flux语言和基本概念的味道。在Chronograf中,您可以很酷地在可视化与Flux返回的原始数据表中切换。这非常有用,并允许您理解Flux如何评估您在构建查询时使用的不同函数。
您可以使用Flux构建器中的各种面板继续探索Flux。有关当前可用函数的完整列表以及更多示例,请参阅官方文档。我们将在未来的博客文章中分解查询部分、以表格格式返回的结果,以及如何利用 window()
和 group()
。
但首先,您可以通过下载 InfluxDB 1.7 和 Chronograf 1.7的开源版本来开始使用Flux。
一如既往,我们期待社区的反馈。请访问InfluxData社区网站,为我们改进Flux语言提供反馈。