插件 〉Hydrolix
Hydrolix
用于 Grafana 的 Hydrolix 数据源
Hydrolix 数据源插件将 Hydrolix 与 Grafana 集成,实现 Hydrolix 数据的无缝查询、分析和可视化。
安装插件
要安装 Hydrolix 数据源插件
- 打开 Grafana 插件目录。
- 搜索 Hydrolix 数据源。
- 选择插件并单击安装插件。
安装后
- 在 Grafana 中,导航到连接 > 数据源 > 添加新数据源。
- 从列表中选择 Hydrolix。
有关安装的更多详细信息,请参阅 Grafana 的插件管理文档。
配置数据源
您可以直接在 Grafana 中或通过配置文件配置 Hydrolix 数据源。
以下是 Hydrolix 配置选项列表
名称 | 说明 |
---|---|
名称 | 在面板和查询中引用此数据源的名称 |
默认 | 切换此选项将此 Hydrolix 数据源设为面板和可视化中的默认数据源 |
服务器地址 | 您的 Hydrolix 实例的 IP 地址或主机名 |
服务器端口 | 您的 Hydrolix 实例正在运行的端口 |
使用默认值 | 切换此选项以使用默认端口而非指定自定义端口 |
协议 | 使用的通信协议:原生(Native)或 HTTP |
安全连接 | 切换此选项以启用安全连接 |
HTTP URL 路径(可选) | 用于 HTTP 请求的附加 URL 路径 |
跳过 TLS 验证 | 切换此选项以绕过 TLS 证书验证。不推荐使用,除非出于测试目的绝对必要 |
用户名、密码 | 连接到您的 Hydrolix 实例的凭据 |
默认数据库(可选) | 当查询中未明确包含数据库时使用 |
默认舍入值(可选) | 当查询未指定舍入值时使用。将 $from 和 $to 对齐到此值的最近倍数。有关更多详细信息,请参阅舍入时间戳 |
即席过滤表变量名称(可选) | 指定用于即席过滤器键的表的变量 |
即席过滤时间列变量名称(可选) | 指定在值查询中用于时间过滤的列的变量 |
即席过滤键查询(可选) | 用于检索即席过滤器可能键的查询模板 |
即席过滤值查询(可选) | 用于检索即席过滤器键的可能值的查询模板 |
即席过滤默认时间范围(可选) | 当仪表盘时间范围不可用时,用于过滤即席过滤器键值的默认时间范围 |
拨号超时(可选) | 连接超时时间(秒) |
查询超时(可选) | 读取超时时间(秒) |
配置数据源
要使用 Grafana 的 Provisioning 系统配置 Hydrolix 数据源,请在 YAML 配置文件中进行定义。
以下是一些配置示例。
使用 HTTPS 协议
apiVersion: 1
datasources:
- name: "Hydrolix"
type: "hydrolix-hydrolix-datasource"
jsonData:
host: localhost
port: 443
protocol: http
secure: true
username: username
path: /query
secureJsonData:
password: password
使用原生协议
apiVersion: 1
datasources:
- name: "Hydrolix"
type: "hydrolix-hydrolix-datasource"
jsonData:
host: localhost
port: 9440
protocol: native
secure: true
username: username
secureJsonData:
password: password
使用包含默认值和即席过滤器的 HTTPS 协议
apiVersion: 1
datasources:
- name: "Hydrolix"
type: "hydrolix-hydrolix-datasource"
jsonData:
host: localhost
port: 443
protocol: http
secure: true
username: username
path: /query
defaultDatabase: database
defaultRound: 60s
adHocTableVariable: table
adHocTimeColumnVariable: timeColumn
adHocKeysQuery: DESCRIBE $${table}
adHocValuesQuery: >
SELECT $${column}, COUNT(*) as count FROM $${table}
WHERE $$__timeFilter($${timeColumn}) AND $$__adHocFilter()
GROUP BY $${column}
ORDER BY count DESC
LIMIT 100
secureJsonData:
password: password
有关 Provisioning 的更多详细信息,请参阅 Grafana 的Provisioning 文档。
查询数据源
Grafana 中的查询编辑器通过宏和模板提供了强大的 SQL 查询能力以及便捷的语法增强功能。
SQL 查询编辑器
该编辑器提供了广泛的 SQL 功能,包括
- 数据库、表、列和 SQL 语法的智能自动补全。
- 支持模板变量和宏。
- 代码格式化。
键盘快捷键
Cmd/Ctrl + Return
– 运行查询。
宏
为了简化语法并允许动态部分(如日期范围过滤器),查询可以包含宏。
宏 | 说明 | 输出示例 |
---|---|---|
$__dateFilter(column) | 根据面板的日期范围生成一个条件来过滤数据(使用提供的列) |
|
$__timeFilter(column) | 根据面板的秒级时间范围生成一个条件来过滤数据(使用提供的列) |
|
$__timeFilter_ms(column) | 根据面板的毫秒级时间范围生成一个条件来过滤数据(使用提供的列) |
|
$__dateTimeFilter(dateColumn, timeColumn) | 结合 $__dateFilter() 和 $__timeFilter() ,使用单独的日期和时间列进行过滤 |
|
$__adHocFilter | 替换为基于即席查询过滤数据的条件 |
|
$__fromTime | 替换为面板的开始时间,转换为 DateTime 类型 |
|
$__toTime | 替换为面板的结束时间,转换为 DateTime 类型 |
|
$__fromTime_ms | 替换为面板的开始时间,转换为 DateTime64(3) 类型(毫秒精度) |
|
$__toTime_ms | 替换为面板的结束时间,转换为 DateTime64(3) 类型(毫秒精度) |
|
$__interval_s | 替换为间隔时间(秒) | 20 |
$__timeInterval(column) | 根据面板宽度计算间隔,用于按秒对数据进行分组 |
|
$__timeInterval_ms(column) | 根据面板宽度计算间隔,用于按毫秒对数据进行分组 |
|
$__conditionalAll(condition, $templateVar) | 仅当模板变量未选择所有值时包含提供的条件,否则默认为 1=1 | condition 或 1=1 |
以下是使用 $__timeFilter
宏的查询示例
SELECT $__timeInterval(log_time) AS time, avg(cpu_usage) AS value
FROM logs
WHERE $__timeFilter(log_time)
GROUP BY time
ORDER BY time
即席过滤器
即席过滤器允许灵活的键值过滤,可以动态地应用于跨查询。这些过滤器通过 $__adHocFilter
宏注入到查询中,并且必须明确包含在 WHERE
子句中
SELECT $__timeInterval(log_time) AS time, avg(cpu_usage) AS value
FROM logs
WHERE $__timeFilter(log_time) AND $__adHocFilter()
GROUP BY time
ORDER BY time
该插件确保仅在对选定的表有效时应用过滤器。
配置即席过滤器
要启用即席过滤器,数据源和仪表盘都必须正确配置
在数据源设置中(在高级设置下)
- 即席过滤表变量名称:定义用于检索过滤器键和值的表的仪表盘变量名称。
- 即席过滤时间列变量名称:定义在值查询中用于时间过滤的列的仪表盘变量名称。
- 即席过滤键查询:用于列出可能键的查询模板。
- 即席过滤值查询:用于列出可能值的查询模板。
- 即席过滤默认时间范围:当仪表盘时间范围不可用时使用的默认时间范围。
在目标仪表盘中,使用数据源设置中定义的精确名称创建两个变量
- 一个用于表名的变量。
- 一个用于时间列的变量。
注意:除非数据源和仪表盘都配置正确,否则即席过滤器将不起作用。务必精确匹配变量名称。
查询模板
这些模板用于动态生成可用于过滤的键和值列表。
键查询
DESCRIBE ${table}
值查询
SELECT ${column}, COUNT(${column}) AS count
FROM ${table}
WHERE $__timeFilter(${timeColumn}) AND $__adHocFilter()
GROUP BY ${column}
ORDER BY count DESC
LIMIT 100
在查询模板中,某些占位符会在运行时动态替换为实际值。以下是每个变量的含义
名称 | 说明 |
---|---|
| 从中提取即席键和值的表 |
| 用户选择作为过滤键的特定列。此值来自键查询返回的可用字段列表 |
| 用于应用时间过滤器的列 |
有关即席过滤器的更多详细信息,请参阅 Grafana 的即席过滤器文档。
舍入时间戳
为了控制时间范围的对齐方式,$from
和 $to
时间戳可以四舍五入到查询编辑器或数据源设置中设置的舍入值的最近倍数。
如果在查询编辑器中设置了舍入值,它将优先使用。如果在查询编辑器中未设置舍入值,则数据源将回退到默认舍入值(如果已配置且非零)。如果两者都未设置,或者查询编辑器中的舍入值明确设置为 0
,则不应用舍入,并直接使用原始时间戳。
支持的舍入时间单位有:ms
(毫秒)、s
(秒)、m
(分钟)和 h
(小时)。
示例
默认舍入值 | 查询舍入值 | 实际舍入值 | 输入时间戳 | 舍入后的时间戳 |
---|---|---|---|---|
5 分钟 | 未设置 | 5 分钟 | 10:07:20 | 10:05:00 |
5 分钟 | 1 分钟 | 1 分钟 | 09:02:30 | 09:03:00 |
未设置 | 未设置 | 未应用 | 08:01:23 | 08:01:23 |
5 分钟 | 0 | 未应用 | 07:45:50 | 07:45:50 |
模板变量
Hydrolix 查询完全支持 Grafana 的模板变量,可以创建动态可重用的仪表盘。
有关模板变量的更多详细信息,请参阅 Grafana 的模板变量文档。
在 Grafana Cloud 上安装 Hydrolix
在 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 工具从命令行安装 Hydrolix
grafana-cli plugins install
插件将安装到您的 grafana 插件目录中;默认目录是 /var/lib/grafana/plugins。关于 CLI 工具的更多信息。
2. 配置数据源
从 Grafana 主菜单访问,新安装的数据源可以立即在数据源部分添加。
然后,单击右上角的“添加数据源”按钮。数据源将在类型选择框中可供选择。
要查看已安装数据源列表,请单击主菜单中的插件项。核心数据源和已安装数据源都将显示。
变更日志
0.1.6
- 修复:将默认舍入设置应用于模板变量中定义的查询
0.1.5
- 功能:添加在查询编辑器中显示插值 SQL 的选项
- 功能:添加对即席过滤器键的新列类型支持
0.1.4
- 修复:解决 Grafana 插件验证器报告的问题,以符合发布要求
0.1.3
- 修复:重命名插件 ID 以遵循命名约定
0.1.2
- 功能:添加对警报的支持
0.1.1
- 兼容性:改进与 Grafana 10.4.x 的兼容性
0.1.0
- 初始 Beta 版本发布。