插件 〉QuestDB
QuestDB
Grafana 的 QuestDB 数据源

QuestDB 数据源插件允许您在 Grafana 中查询和可视化 QuestDB 数据。
安装
有关如何在 Grafana Cloud 或本地安装插件的详细说明,请查看插件安装文档。
阅读 QuestDB 网站上的指南:第三方工具 - Grafana。
配置
用于数据源的 QuestDB 用户
设置一个具有只读权限的 QuestDB 用户账号,并授予对您要查询的数据库和表的访问权限。请注意,Grafana 不会验证查询是否安全。查询可以包含任何 SQL 语句。例如,诸如 UPDATE users SET name='blahblah'
和 DROP TABLE importantTable;
之类的语句都将被执行。
配置只读用户,请按照以下步骤操作:
- 开源版本
- 在 server.conf 文件中设置以下属性:
- pg.readonly.user.enabled=true
- pg.readonly.user=myuser
- pg.readonly.password=secret
- 重启 QuestDB 实例。
- 在 server.conf 文件中设置以下属性:
- 企业版
- 创建用户
- CREATE USER grafana_readonly;
- 授予对选定表/表列的读取权限;
- GRANT SELECT ON table1, ... TO grafana_readonly;
- 创建用户
手动配置
在您的 Grafana 实例上安装插件后,按照这些说明添加新的 QuestDB 数据源,并输入配置选项。
通过配置文件
可以使用 Grafana 的 Provisioning 系统通过配置文件配置数据源。要了解其工作原理,包括可以为此数据源设置的所有设置,请参阅Provisioning Grafana 数据源。
请注意,插件必须事先安装。如果您使用 Docker 并希望自动化安装,可以设置GF_INSTALL_PLUGINS 环境变量
docker run -p 3000:3000 -e GF_INSTALL_PLUGINS=questdb-questdb-datasource grafana/grafana-oss
这是使用 QuestDB 开源版默认配置的此数据源的示例 Provisioning 文件。
apiVersion: 1
datasources:
- name: QuestDB
type: questdb-questdb-datasource
jsonData:
server: localhost
port: 8812
username: admin
tlsMode: disable
# timeout: <seconds>
# queryTimeout: <seconds>
maxOpenConnections: 100
maxIdleConnections: 100
maxConnectionLifetime: 14400
secureJsonData:
password: quest
# tlsCACert: <string>
如果您使用的是 QuestDB 企业版并已启用 TLS,则需要将上面示例中的 tlsMode: require
修改为其他值。
构建查询
查询编辑器允许您查询 QuestDB 以返回时间序列或表格数据。查询可以包含宏,从而简化语法并支持动态部分。
时间序列
将 timestamp
字段类型添加到查询后,可以选择时间序列可视化选项。此字段将用作时间戳。您可以使用可视化选项选择时间序列可视化。Grafana 将没有明确时区的时间戳行解释为 UTC。除了 time
以外的任何列都被视为值列。
多线时间序列
要创建多线时间序列,查询必须按照以下顺序返回至少 3 个字段:
- 字段 1:别名为
time
的timestamp
字段 - 字段 2:用于分组的值
- 字段 3+:指标值
例如:
SELECT pickup_datetime AS time, cab_type, avg(fare_amount) AS avg_fare_amount
FROM trips
GROUP BY cab_type, pickup_datetime
ORDER BY pickup_datetime
表格
对于任何有效的 QuestDB 查询,表格可视化始终可用。
宏
为了简化语法和支持动态部分(如日期范围过滤器),查询可以包含宏。
这是一个包含宏的查询示例,该宏将使用 Grafana 的时间过滤器:
SELECT desginated_timestamp, data_stuff
FROM test_data
WHERE $__timeFilter(desginated_timestamp)
宏 | 描述 | 输出示例 |
---|---|---|
$__timeFilter(columnName) | 根据面板的时间范围(以秒为单位),使用提供的列进行数据过滤的条件表达式替代 | timestamp >= cast(1706263425598000 as timestamp) AND timestamp <= cast(1706285057560000 as timestamp) |
$__fromTime | 用转换成时间戳的面板时间范围的起始时间替代 | cast(1706263425598000 as timestamp) |
$__toTime | 用转换成时间戳的面板时间范围的结束时间替代 | cast(1706285057560000 as timestamp) |
$__sampleByInterval | 用间隔值后跟单位(d, h, s 或 T(毫秒))替代。示例:1d, 5h, 20s, 1T。 | 20s (20 秒) , 1T (1 毫秒) |
$__conditionalAll(condition, $templateVar) | 当第二个参数中的模板变量未选择所有值时,用第一个参数替代。当模板变量选择所有值时,用 1=1 替代。 | condition 或 1=1 |
插件还支持使用大括号 {} 的记法。当参数内部需要查询时,使用此记法。
此外,Grafana 具有内置的 $__interval
宏,用于计算以秒或毫秒为单位的间隔。由于时间单位不兼容(1ms 与 QuestDB 期望的 1T),不应将其与 SAMPLE BY 一起使用。请改用 $__sampleByInterval
。
模板和变量
要添加新的 QuestDB 查询变量,请参阅添加查询变量。
创建变量后,您可以使用变量语法在 QuestDB 查询中使用它。有关变量的更多信息,请参阅模板和变量。
即席过滤器
即席过滤器允许您添加键/值过滤器,这些过滤器会自动添加到使用指定数据源的所有指标查询中,而无需在查询中显式使用。
默认情况下,即席过滤器将填充所有表和列。如果您在数据源设置中定义了默认数据库,则将使用该数据库中的所有表来填充过滤器。由于这可能会很慢/昂贵,您可以引入第二个变量来限制即席过滤器。它应该是一个名为 questdb_adhoc_query
的 constant
类型变量,可以包含:一个逗号分隔的表列表,仅显示一个或多个表的列。
有关即席过滤器的更多信息,请查看Grafana 文档
使用查询作为即席过滤器
常量 questdb_adhoc_query
也允许使用任何有效的 QuestDB 查询。查询结果将用于填充您的即席过滤器的可选项。您可以选择隐藏此变量,因为它不再具有其他用途。
了解更多
在 Grafana Cloud 上安装 QuestDB
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件是一键式操作;更新也是如此。很酷,对吧?
请注意,插件可能需要长达 1 分钟才能在您的 Grafana 中显示。
有关更多信息,请访问关于插件安装的文档。
在本地 Grafana 上安装
对于本地实例,插件通过简单的 CLI 命令安装和更新。插件不会自动更新,但您将在 Grafana 中收到可用更新的通知。
1. 安装数据源
使用 grafana-cli 工具从命令行安装 QuestDB
grafana-cli plugins install
插件将安装到您的 Grafana 插件目录;默认为 /var/lib/grafana/plugins。更多关于 cli 工具的信息。
2. 配置数据源
从 Grafana 主菜单访问,新安装的数据源可以在“数据源”部分立即添加。
接下来,点击右上角的“添加数据源”按钮。该数据源将在 类型 选择框中可供选择。
要查看已安装数据源的列表,请点击主菜单中的 插件 项。核心数据源和已安装数据源都会显示。
更新日志
@questdb/grafana-questdb-datasource
项目的所有重要变更都将在此文件中记录。
格式基于Keep a Changelog,本项目遵循语义化版本规范。
变更类型
Added
:新增功能。Changed
:现有功能变更。Deprecated
:即将移除的功能。Removed
:已移除的功能。Fixed
:任何错误修复。Security
:漏洞相关。
0.1.4
变更
0.1.3
变更
- 移除已废弃的
vectorator
方法并使用数组格式进行操作。 #97 - 更新必要的版权 + 添加 NOTICE 以指示衍生作品 #97
- 尽可能淘汰
@grafana/experimental
,转而使用@grafana/plugin-ui
。
0.1.0
新增
- 初始 Beta 版本发布。