插件 〉Apache IoTDB
Apache IoTDB
Grafana 插件
Grafana 是一个开源的体积指标监控和可视化工具,可用于呈现时序数据并分析应用程序运行时状态。
我们为 IoTDB 开发了 Grafana 插件,使用 IoTDB REST 服务来呈现时序数据,并提供了多种时序数据可视化方法。
IoTDB Grafana 插件支持 Grafana 9.3.0 及以上版本
如何使用 Grafana 插件
访问 Grafana 仪表盘
Grafana 在网页仪表盘中显示数据。使用时请打开您的浏览器并访问 http://<ip>:<port>
。
IP 是您 Grafana 所在服务器的 IP,Port 是 Grafana 的运行端口(默认为 3000)。
默认登录用户名和密码均为
admin
。
添加 IoTDB 作为数据源
点击左侧的 设置
图标,选择 数据源
选项,然后点击 添加数据源
。


选择 Apache IoTDB
数据源。
- 在
URL
字段中填写http://<ip>:<port>
- ip 是您的 IoTDB 服务器所在主机的 IP
- port 是 REST 服务的运行端口(默认为 18080)。
- 输入 IoTDB 服务器的用户名和密码
点击 保存并测试
,将显示 成功
。

创建一个新面板
点击左侧的 仪表盘
图标,选择 管理
选项。

点击右上角的 新仪表盘
图标,选择 添加一个空面板
选项。

Grafana 插件支持 SQL:完全自定义模式 和 SQL:下拉列表模式,默认模式为 SQL:完全自定义模式。

SQL:完全自定义输入方法
在 SELECT、FROM、WHERE 和 CONTROL 输入框中输入内容,其中 WHERE 和 CONTROL 输入框是可选的。
如果查询涉及多个表达式,我们可以点击 SELECT 输入框右侧的 +
来添加 SELECT 子句中的表达式,或者点击 FROM 输入框右侧的 +
来添加路径前缀

SELECT 输入框:内容可以是时间序列后缀、函数、udf、算术表达式或嵌套表达式。您还可以使用 as 子句重命名结果。
以下是一些有效的 SELECT 内容示例
s1
top_k(s1, 'k'='1') as top
sin(s1) + cos(s1 + s2)
udf(s1) as "alias"
FROM 输入框:内容必须是时间序列的路径前缀,例如 root.sg.d
。
WHERE 输入框:内容应该是查询的过滤条件,例如 time > 0
或 s1 < 1024 and s2 > 1024
。
CONTROL 输入框:内容应该是一个控制查询类型和输出格式的特殊子句。GROUP BY 输入框支持使用 Grafana 的全局变量来获取当前时间间隔的变化 $__from(开始时间)、$__to(结束时间)
以下是一些有效的 CONTROL 内容示例
GROUP BY ([$__from, $__to), 1d)
GROUP BY ([$__from, $__to),3h,1d)
GROUP BY ([2017-11-01T00:00:00, 2017-11-07T23:00:00), 1d)
GROUP BY ([2017-11-01 00:00:00, 2017-11-07 23:00:00), 3h, 1d)
GROUP BY ([$__from, $__to), 1m) FILL (PREVIOUSUNTILLAST)
GROUP BY ([2017-11-07T23:50:00, 2017-11-07T23:59:00), 1m) FILL (PREVIOUSUNTILLAST)
GROUP BY ([2017-11-07T23:50:00, 2017-11-07T23:59:00), 1m) FILL (PREVIOUS, 1m)
GROUP BY ([2017-11-07T23:50:00, 2017-11-07T23:59:00), 1m) FILL (LINEAR, 5m, 5m)
GROUP BY ((2017-11-01T00:00:00, 2017-11-07T23:00:00], 1d), LEVEL=1
GROUP BY ([0, 20), 2ms, 3ms), LEVEL=1
提示:不建议使用 select * from root.xx.**
等语句,因为这些语句可能导致 OOM。
SQL:下拉列表
在 TIME-SERIES 选择框中选择时间序列,在 FUNCTION 选项中选择函数,并在 SAMPLING INTERVAL、SLIDING STEP、LEVEL、FILL 输入框中输入内容,其中 TIME-SERIES 是必填项,其余为非必填项。

支持变量和模板函数
SQL:完全自定义和 SQL:下拉列表两种输入方法都支持 Grafana 的变量和模板函数。在下面的示例中,使用了原始输入方法,聚合方法类似。
创建新面板后,点击右上角的设置按钮

选择 Variables
,点击 Add variable

示例 1:输入 名称
、标签
和 查询
,然后点击 更新
按钮

应用变量,在 Grafana 面板
中输入变量,然后点击 保存
按钮

示例 2:变量的嵌套使用



示例 3:使用函数变量


上图中的 Name 是变量名,也是我们将来在面板中使用的变量名。Label 是变量的显示名称。如果为空,则显示 Name 变量;否则,显示 Label 的名称。类型下拉列表中有 Query、Custom、Text box、Constant、DataSource、Interval、Ad hoc filters 等,所有这些都可以在 IoTDB 的 Grafana 插件中使用。有关更详细的用法介绍,请查阅官方手册 (https://grafana.org.cn/docs/grafana/latest/variables/)
除了上面的示例,还支持以下语句
show databases
show timeseries
show child nodes
show all ttl
show latest timeseries
show devices
select xx from root.xxx limit xx 等 SQL 查询
提示:如果查询字段包含布尔型数据,结果值会将 true 转换为 1,将 false 转换为 0。
Grafana 告警功能
此插件支持 Grafana 告警功能。
有关 Grafana 操作的更多详细信息,请参阅官方 Grafana 文档:https://grafana.org.cn/docs/grafana/latest/alerting/
在 Grafana Cloud 上安装 Apache IoTDB
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
在 Grafana Cloud 实例上安装插件是一键完成的;更新也是如此。很酷,对吧?
请注意,插件显示在 Grafana 中可能需要长达 1 分钟的时间。
有关更多信息,请访问文档:插件安装。
在本地 Grafana 上安装
对于本地实例,插件通过简单的 CLI 命令进行安装和更新。插件不会自动更新,但您将在 Grafana 中收到可用更新的通知。
1. 安装数据源
使用 grafana-cli 工具通过命令行安装 Apache IoTDB
grafana-cli plugins install
插件将安装到您的 Grafana 插件目录;默认路径为 /var/lib/grafana/plugins。关于 CLI 工具的更多信息。
2. 配置数据源
从 Grafana 主菜单访问,新安装的数据源可以立即在数据源部分添加。
接下来,点击右上角的“添加数据源”按钮。数据源将在类型选择框中可用。
要查看已安装数据源的列表,请点击主菜单中的插件项。核心数据源和已安装数据源都将显示。
<!--
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://apache.ac.cn/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-->
更新日志
请参阅 RELEASE_NOTES.md