本页介绍查询编辑器各部分的功能以及如何配置它们。
JSON API 数据源的查询编辑器由多个选项卡组成。每个选项卡配置查询的一部分。
字段
在字段选项卡中,您选择从数据源配置中配置的 URL 返回的 JSON 文档中提取数据。
字段允许您定义一个查询表达式,该表达式确定要从 JSON 文档中提取的数据。支持两种查询语言:JSONPath 和 JSONata。
类型定义由字段表达式返回的元素的 JSON 类型。默认情况下,Grafana 使用 JSON 文档中的类型。如果类型设置为与原始属性类型不同的类型,Grafana 会尝试解析该值。
别名覆盖字段的默认名称。
这在 API 返回带引号的数字时很有用,例如
"price": "3.49"
。
字段长度不同
所有字段必须返回相同数量的值。如果您收到此错误,则表示一个或多个对象缺少查询的元素。
在以下示例中,name
属性在两个对象中都存在,但 version
不存在。
{
"services": [
{
"name": "order-api",
"version": "1"
},
{
"name": "billing-api"
}
]
}
在下面的示例中,您可以看到一些表达式及其在之前示例的 JSON 结构中的结果。由于 JSONPath 表达式是独立评估的,Grafana 无法确定哪个版本丢失了。
表达式 | 结果 |
---|---|
$.services[*].name | ["order-api", "billing-api"] |
$.services[*].version | ["1"] |
路径
左侧的下拉框允许您配置发送到 URL 的请求的 HTTP 方法,可以设置为 GET 和 POST。
文本框允许您在数据源配置中向 URL 追加一个路径。这可以使用变量动态更改请求 URL。
例如,将路径设置为 /movies/${movie}/summary
,您可以查询任何电影的摘要,而无需更改查询本身。
参数
添加您想作为查询字符串一部分发送的任何参数。例如,屏幕截图中的参数被编码为 ?category=movies
。
Key 和 Value 字段都支持变量。
注意: 管理员在数据源配置中设置的任何查询参数具有更高优先级,并会覆盖查询设置的参数。
请求头
添加您想作为 HTTP 请求头发送的任何参数。
Key 和 Value 字段都支持变量。
请求体
设置要作为请求体发送的文本。
- 语法高亮 设置编辑器的活动语法。这仅用于视觉目的,不会改变实际请求。
信息: 由于现代浏览器的限制,如果 HTTP 方法设置为 GET,Grafana 会忽略请求体。
实验性功能
试用当前正在开发中的功能。每个功能的工具提示中都有一个链接,可带您到 GitHub 上的功能请求页面,您可以在那里分享您的反馈。
警告: 实验性功能可能不稳定,并可能在未通知的情况下移除。
缓存时间
默认情况下,Grafana 会缓存上次请求返回的 JSON 文档,以避免在配置查询时达到速率限制。一旦您对查询满意,请考虑将缓存时间设置为 0s 以禁用缓存。