插件 〉Hydrolix


开发者

Hydrolix

注册以接收不定期的产品新闻和更新



数据源
商业

Hydrolix

  • 概述
  • 安装
  • 变更日志
  • 相关内容

用于 Grafana 的 Hydrolix 数据源

Hydrolix 数据源插件将 Hydrolix 与 Grafana 集成,实现 Hydrolix 数据的无缝查询、分析和可视化。

安装插件

要安装 Hydrolix 数据源插件

  1. 打开 Grafana 插件目录
  2. 搜索 Hydrolix 数据源
  3. 选择插件并单击安装插件

安装后

  1. 在 Grafana 中,导航到连接 > 数据源 > 添加新数据源
  2. 从列表中选择 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)根据面板的日期范围生成一个条件来过滤数据(使用提供的列)date >= toDate('2022-10-21') AND date <= toDate('2022-10-23')
$__timeFilter(column)根据面板的秒级时间范围生成一个条件来过滤数据(使用提供的列)time >= toDateTime(1415792726) AND time <= toDateTime(1447328726)
$__timeFilter_ms(column)根据面板的毫秒级时间范围生成一个条件来过滤数据(使用提供的列)time >= fromUnixTimestamp64Milli(1415792726123) AND time <= fromUnixTimestamp64Milli(1447328726456)
$__dateTimeFilter(dateColumn, timeColumn)结合 $__dateFilter()$__timeFilter(),使用单独的日期和时间列进行过滤$__dateFilter(dateColumn) AND $__timeFilter(timeColumn)
$__adHocFilter替换为基于即席查询过滤数据的条件statusCode = '200'
$__fromTime替换为面板的开始时间,转换为 DateTime 类型toDateTime(1415792726)
$__toTime替换为面板的结束时间,转换为 DateTime 类型toDateTime(1447328726)
$__fromTime_ms替换为面板的开始时间,转换为 DateTime64(3) 类型(毫秒精度)fromUnixTimestamp64Milli(1415792726123)
$__toTime_ms替换为面板的结束时间,转换为 DateTime64(3) 类型(毫秒精度)fromUnixTimestamp64Milli(1447328726456)
$__interval_s替换为间隔时间(秒)20
$__timeInterval(column)根据面板宽度计算间隔,用于按秒对数据进行分组toStartOfInterval(toDateTime(column), INTERVAL 20 second)
$__timeInterval_ms(column)根据面板宽度计算间隔,用于按毫秒对数据进行分组toStartOfInterval(toDateTime64(column, 3), INTERVAL 20 millisecond)
$__conditionalAll(condition, $templateVar)仅当模板变量未选择所有值时包含提供的条件,否则默认为 1=1condition1=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

该插件确保仅在对选定的表有效时应用过滤器。

配置即席过滤器

要启用即席过滤器,数据源和仪表盘都必须正确配置

  1. 在数据源设置中(在高级设置下)

    • 即席过滤表变量名称:定义用于检索过滤器键和值的表的仪表盘变量名称。
    • 即席过滤时间列变量名称:定义在值查询中用于时间过滤的列的仪表盘变量名称。
    • 即席过滤键查询:用于列出可能键的查询模板。
    • 即席过滤值查询:用于列出可能值的查询模板。
    • 即席过滤默认时间范围:当仪表盘时间范围不可用时使用的默认时间范围。
  2. 在目标仪表盘中,使用数据源设置中定义的精确名称创建两个变量

    • 一个用于表名的变量。
    • 一个用于时间列的变量。

注意:除非数据源和仪表盘都配置正确,否则即席过滤器将不起作用。务必精确匹配变量名称。

查询模板

这些模板用于动态生成可用于过滤的键和值列表。

键查询

DESCRIBE ${table}

值查询

SELECT ${column}, COUNT(${column}) AS count
FROM ${table}
WHERE $__timeFilter(${timeColumn}) AND $__adHocFilter()
GROUP BY ${column}
ORDER BY count DESC
LIMIT 100

在查询模板中,某些占位符会在运行时动态替换为实际值。以下是每个变量的含义

名称说明
${table}从中提取即席键和值的表
${column}用户选择作为过滤键的特定列。此值来自键查询返回的可用字段列表
${timeColumn}用于应用时间过滤器的列

有关即席过滤器的更多详细信息,请参阅 Grafana 的即席过滤器文档

舍入时间戳

为了控制时间范围的对齐方式,$from$to 时间戳可以四舍五入到查询编辑器或数据源设置中设置的舍入值的最近倍数。

如果在查询编辑器中设置了舍入值,它将优先使用。如果在查询编辑器中未设置舍入值,则数据源将回退到默认舍入值(如果已配置且非零)。如果两者都未设置,或者查询编辑器中的舍入值明确设置为 0,则不应用舍入,并直接使用原始时间戳。

支持的舍入时间单位有:ms(毫秒)、s(秒)、m(分钟)和 h(小时)。

示例

默认舍入值查询舍入值实际舍入值输入时间戳舍入后的时间戳
5 分钟未设置5 分钟10:07:2010:05:00
5 分钟1 分钟1 分钟09:02:3009:03:00
未设置未设置未应用08:01:2308:01:23
5 分钟0未应用07:45:5007:45:50

模板变量

Hydrolix 查询完全支持 Grafana 的模板变量,可以创建动态可重用的仪表盘。

有关模板变量的更多详细信息,请参阅 Grafana 的模板变量文档

在 Grafana Cloud 上安装 Hydrolix

有关更多信息,请访问关于插件安装的文档。

变更日志

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 版本发布。