插件 〉YDB


开发者

YDB Platform

订阅以接收不定期的产品新闻和更新



数据源
社区

YDB

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

License Release Downloads

Telegram WebSite PRs Welcome

Grafana 的 YDB 数据源

版本兼容性

插件需要 Grafana v9.2 及更高版本。

YDB 数据源插件允许您在 Grafana 中查询和可视化 YDB 数据。

安装

有关如何在 Grafana Cloud 或本地安装插件的详细说明,请查阅插件安装文档

配置

数据源的 YDB 用户

设置一个具有只读权限的 YDB 用户账号(更多关于权限的信息),并授予对您要查询的数据库和表的访问权限。请注意,Grafana 不会验证查询是否安全。查询可以包含任何 SQL 语句,包括修改指令。

数据传输协议支持

插件支持 GRPCSGRPC 传输协议。请注意,使用 grpcs 时需要提供 TLS/SSL 证书。

手动配置

在 Grafana 实例上安装插件后,请遵循这些说明添加新的 YDB 数据源,并输入配置选项。

通过配置文件

可以使用 Grafana 的配置系统通过配置文件来配置数据源。要了解其工作原理,包括您可以为该数据源设置的所有设置,请参阅配置 Grafana 数据源

插件支持不同的身份验证类型身份验证类型

这是使用用户/密码配置此数据源的示例

apiVersion: 1
datasources:
  - name: YDB
    type: ydbtech-ydb-datasource
    jsonData:
      authKind: "UserPassword",
      endpoint: 'grpcs://endpoint',
      dbLocation: 'location',
      user: 'username',
    secureJsonData:
      password: 'userpassword',
      certificate: 'certificate',

以下是连接配置中支持的字段

    jsonData:
      authKind: "Anonymous" | "ServiceAccountKey" | "AccessToken" | "UserPassword" | "MetaData";
      endpoint: string;
      dbLocation: string;
      user?: string;
    secureJsonData:
      serviceAccAuthAccessKey?: string;
      accessToken?: string;
      password?: string;
      certificate?: string;

构建查询

使用YQL 方言查询 YDB。查询可以包含简化语法并允许动态部分的宏。查询编辑器允许您以不同形式获取数据:时间序列、表格或日志。

时间序列

在您的查询中添加一个 DateDatetimeTimestamp 类型的字段以及至少一个 number 类型的字段后,即可选择时间序列可视化选项。您可以使用可视化选项选择时间序列可视化。Grafana 将没有显式时区的时间戳行解释为 UTC。任何其他列都被视为值列。

多行时间序列

要创建多行时间序列,查询必须按以下顺序返回至少 3 个字段

  • 字段 1:时间字段
  • 字段 2:用于分组的值
  • 字段 3+:指标值

例如

SELECT `timestamp`, `requestTime`, AVG(`responseStatus`) AS `avgRespStatus`
FROM `/database/endpoint/my-logs`
GROUP BY `requestTime`, `timestamp`
ORDER BY `timestamp`

表格

对于任何有效的 YDB 查询,表格可视化始终可用。

使用日志面板可视化日志

要使用日志面板,您的查询必须返回时间值和字符串值。您可以使用可视化选项选择日志可视化。

默认情况下,只有第一个文本字段将显示为日志行,但这可以使用查询构建器进行自定义。

为了简化语法并允许动态部分(例如日期范围过滤器),查询可以包含宏。

这是一个包含使用 Grafana 时间过滤器的宏的查询示例

SELECT `timeCol`
FROM `/database/endpoint/my-logs`
WHERE $__timeFilter(`timeCol`)
描述输出示例
$__timeFilter(columnName)被一个条件替换,该条件根据面板时间范围(以微秒为单位)过滤数据(使用提供的列)foo >= CAST(1636717526371000 AS TIMESTAMP) AND foo <= CAST(1668253526371000 AS TIMESTAMP)' )
$__fromTimestamp被面板时间范围的起始时间替换,并转换为 Timestamp 类型CAST(1636717526371000 AS TIMESTAMP)
$__toTimestamp被面板时间范围的结束时间替换,并转换为 Timestamp 类型CAST(1636717526371000 AS TIMESTAMP)
$__varFallback(condition, $templateVar)当第二个参数中的模板变量未提供时,被第一个参数替换。conditiontemplateVarValue

模板和变量

要添加新的 YDB 查询变量,请参阅添加查询变量。创建变量后,您可以通过使用变量语法在您的 YDB 查询中使用它。有关变量的更多信息,请参阅模板和变量

了解更多

在 Grafana Cloud 上安装 YDB

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

变更日志

0.5.0

  • 更新 github.com/ydb-platform/ydb-go-sdk/v3
  • 切换 YDB 的 database/sql 驱动以使用 query-service

0.4.3

  • 前端和后端默认认证类型应一致
  • 变量为多值时过滤器存在 Bug

0.4.2

  • 更新 github.com/grafana/grafana-plugin-sdk-go

0.4.1

  • 支持数字 limit 以实现向后兼容

0.4.0

  • 向查询构建器添加 ORDER BY
  • 多项改进和 Bug 修复
  • 最低所需 Grafana 版本提高到 v9.2