插件 〉GraphQL 数据源
GraphQL 数据源
GraphQL 数据源
Grafana 数据源插件,提供对 GraphQL API 的访问,用于处理数值时间序列数据、通用/表格数据、注解和仪表盘变量。
- GraphQL 查询必须结构化,以便感兴趣的数据在响应中返回到可配置的数据路径下(默认为
data
)。如果该路径下的对象是数组,将进行迭代,每个对象作为数据帧中的一行添加,否则结果对象将是唯一一行。- 可以使用逗号分隔以使用多个数据路径
- 时间序列数据必须包含数据路径下的时间戳字段,默认为
Time
,格式为 ISO8601 或可配置的 自定义格式。 - 嵌套类型将被展平为以点分隔的字段。
- Grafana 变量应直接在查询中替换(而不是使用 GraphQL 变量)。仪表盘时间范围在 全局变量
$__from
和$__to
中以毫秒时间戳格式提供(或在 Grafana 7.1.2 或更高版本中 API 所需的任何格式)。 - 可以使用 Group by 将元素分组为多个数据点。
- Alias by 用于更改图例中显示的字段名称。
$field_<field.name>
将被字段的值替换,而$fieldName
将被字段的名称替换。
截图
示例
下面是一些示例查询,演示如何使用此插件,使用的是 FIFEMon GraphQL 测试源服务器,其中还包含一个 仪表盘 演示这些查询。
基本时间序列
query {
data: simple_series(from: "${__from:date:iso}", to: "${__to:date:iso}", interval_ms: $__interval_ms) {
Time: timestamp
value
}
}
注意使用全局变量 $__from
和 $__to
将仪表盘时间范围插入到查询中,以及使用 $__interval_ms
指定图表的适当时间间隔。
自定义时间格式
query {
simple_series(
from: "${__from:date:iso}"
to: "${__to:date:iso}"
interval_ms: $__interval_ms
format: "MM.dd.uuuu HHmmss"
) {
timestamp
value
}
}
- 数据路径:
simple_series
- 时间路径:
timestamp
- 时间格式:
MM.DD.YYYY HHmmss
别名和分组
query {
complex_series(from: "${__from:date:iso}", to: "${__to:date:iso}", interval_ms: $__interval_ms) {
time {
timestamp
}
value
group {
id
name
}
}
}
- 数据路径:
complex_series
- 时间路径:
time.timestamp
- 分组依据:
group.id
- 别名依据:
$field_group.name
在上面的例子中,定义了“分组依据”和“别名依据”。“分组依据”允许您将数据数组拆分为多个数据点。“别名依据”用作数据点的名称。您可以通过使用 $field_<your.field.name>
来表示字段的值,或使用 $fieldName
来表示字段的名称,从而使别名使用查询中的文本甚至字段名称。如果使用 $fieldName
,它将被替换为“value”,因为那是字段的名称。如果使用 $field_group.name
,它将被替换为 name
的值。如果您查询了多个想要在图表中显示的数字字段,使用 $fieldName
会很有用。
注解
query {
events(from: "${__from:date:iso}", to: "${__to:date:iso}", end: true) {
timestamp
end_timestamp
name
description
tags
}
}
- 数据路径:
events
- 时间路径:
timestamp
- 结束时间路径:
end_timestamp
- 标题:
$field_name
- 文本:
$field_description
- 标签:
tag1, tag2
上面的注解示例与常规查询类似。您可以定义数据路径、时间路径和时间格式。与上一个示例类似,您还可以通过使用 $field_<field name>
将值替换到标题、文本和标签中。标签之间用逗号分隔。上面的示例有两个标签:“tag1”和“tag2”。
如果定义并存在可选的结束时间字段,注解将显示在一段时间内。
仪表盘变量查询
仪表盘变量可以通过返回对象数组的 GraphQL 查询填充。如果对象包含 __text
和 __value
字段,则会使用它们(__text
字段用于显示,__value
字段用于替换)。否则,所有字段的值将被添加到变量值列表中。
query {
groups {
__value: id
__text: name
}
}
- 数据路径:
groups
在 Grafana Cloud 上安装 GraphQL 数据源
在 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 工具从命令行安装 GraphQL Data Source
grafana-cli plugins install
插件将安装到您的 grafana plugins 目录中;默认为 /var/lib/grafana/plugins。关于 cli 工具的更多信息。
2. 配置数据源
从 Grafana 主菜单访问,新安装的数据源可以直接在“数据源”部分添加。
接下来,点击右上角的“添加数据源”按钮。数据源将在类型选择框中提供选择。
要查看已安装数据源列表,请点击主菜单中的插件项。核心数据源和已安装的数据源都会显示。
更新日志
v1.3.0
- 改进 支持键/值变量 (@retzkek #48)
- 改进 可配置 timePath 和 timeFormat (@retzkek #49)
- 文档 重写示例以使用测试数据源,该数据源提供了一个示例服务器和仪表盘,用户可以安装它来学习和实验。 (@retzkek #51)
v1.2.0
- 改进 添加对仪表盘变量查询的支持 (@ggranberry #38)
- 错误修复 正确范围变量,修复重复面板查询 (@retzkek #41)
v1.1.4
- 改进 使用 templateSrv 插值 timeFrom 和 timeTo 变量。 (@carvid #31)
- 错误修复 修复字段非字符串时 isRFC3339_ISO6801 中的错误 (@ricochet1k #32, @retzkek #33)
v1.1.3
- 使用
QueryField
组件以提供更好的查询编辑体验 (@michaelneale #24) - 打包、文档和测试改进 (@michaelneale #27, @retzkek #29)
- 已弃用: 不再发布 Grafana 6 版本
v1.1.2
- 修复 Grafana 7 中的别名
v1.1.1
- 修复响应中字段为 null 时发生的错误
v1.1.0
- 重大变更: 顶级
data
不应再包含在数据路径中 - 支持多个数据路径,用逗号分隔
v1.0.0
首次发布,基本支持表格和时间序列数据以及注解。