本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
查询和转换数据
本文档主题专为支持 Grafana 9.x 版本的 Grafana 工作空间而设计。
有关支持 Grafana 版本 10.x 的 Grafana 工作空间,请参阅。在 Grafana 版本 10 中工作
有关支持 Grafana 8.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 8 中工作
Grafana 支持多种类型的数据源。数据源查询返回 Grafana 可以转换和可视化的数据。每个数据源都使用自己的查询语言,每个数据源插件都实现了一个名为查询编辑器的查询构建用户界面。
关于查询
Grafana 面板通过查询与数据源进行通信,查询检索数据以进行可视化。查询是用数据源使用的查询语言编写的问题。
您可以在面板的数据源选项中配置查询频率和数据收集限制。Grafana 每个面板最多支持 26 个查询。
您可以在 “数据源” 部分中找到有关每个数据源的查询语言的更多信息。
查询编辑器
每个数据源的查询编辑器都提供了一个自定义的用户界面,可帮助您编写利用其独特功能的查询。
由于查询语言之间的差异,每个数据源查询编辑器的外观和功能都不同。根据您的数据源,查询编辑器可能会提供自动完成功能、指标名称、变量建议或可视化查询构建界面。
有关特定数据源的独特查询编辑器功能的详细信息,请参阅其文档:
-
有关 Grafana 中包含的数据源,请参阅内置数据源。
-
有关 Grafana 企业版中包含的数据源,请参阅。Connect 到企业数据源
查询语法
数据源使用不同的查询语言来请求数据。有关特定数据源的独特查询语言的详细信息,请参阅其文档。
PostgreSQL 示例:
SELECT hostname FROM host WHERE region IN($region)
PromQL 示例:
query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
特殊数据源
Grafana 还包括三个特殊的数据源:Grafana、Mixed 和 Dashboar d。有关详细信息,请参阅数据源
在 “查询” 选项卡中导航
面板的 “查询” 选项卡由以下元素组成:
-
数据源选择器-选择要查询的数据源。
-
查询选项:— 设置最大数据检索参数和查询运行时间间隔。
-
查询检查器按钮:-打开查询检查器面板,您可以在其中查看和优化查询。
-
查询编辑器列表:— 列出您编写的查询。
-
表达式:— 使用表达式生成器创建警报表达式。有关表达式的更多信息,请参阅编写表达式查询。
添加查询
查询返回 Grafana 在仪表板面板中可视化的数据。创建面板时,Grafana 会自动选择默认数据源。
添加查询
-
编辑要向其添加查询的面板。
-
选择 Query(查询)选项卡。
-
选择数据源下拉菜单并选择一个数据源。
-
选择查询选项以配置所需的最大数据点数。有关查询选项的更多信息,请参阅查询选项。
-
使用查询编辑器编写查询。
-
选择 应用。
Grafana 查询数据源并对数据进行可视化。
管理查询
Grafana 将查询组织在可折叠的查询行中。每个查询行都包含一个查询编辑器,并以字母(A、B、C 等)标识。
要管理查询,您可以复制查询、隐藏查询、移除查询、重新排序查询以及切换查询编辑器的帮助。
查询选项
选择数据源选择器旁边的查询选项以查看所选数据源的设置。您在此处所做的更改仅影响在此面板中进行的查询。
Grafana 设置了以深灰色文本显示的默认值。更改以白色文本显示。要将字段恢复为默认设置,请从该字段中删除白色文本。
面板数据源查询选项包括:
-
最大数据点数-如果数据源支持,则设置返回的每个系列的最大数据点数。如果查询返回的数据点数超过了最大数据点的设置,则数据源会通过按平均值、最大值或其他函数将它们聚合在一起来减少返回的点数。
您可以限制点的数量以提高查询性能或平滑可视化线条。默认值为图表的宽度(或像素数),因为您只能在图表面板有显示空间的情况下显示尽可能多的数据点。
对于流数据,Grafana 使用滚动缓冲区的最大数据点值。流式传输是一种持续的数据流,缓冲会将数据流分成多个块。例如,Loki 以其实时跟踪模式传输数据。
-
最小间隔 — 为自动计算的间隔设置最小限制,通常是最小抓取间隔。如果每 15 秒保存一次数据点,则间隔小于该值不会给您带来任何好处。您也可以将其设置为比抓取间隔更高的最小值,以检索更粗糙且运行良好的查询。
-
间隔-设置按时间对数据点进行聚合或分组时可以使用的时间间隔。
Grafana 会自动计算出一个合适的间隔,您可以在模板化查询中将其用作变量。该变量以秒 (
$__interval
) 或毫秒 () 为单位进行测量。$__interval_ms
间隔通常用于聚合函数,例如求和或平均值。例如,这是一个使用间隔变量的 Prometheus 查询:。
rate(http_requests_total[$__interval])
此自动间隔是根据图表的宽度计算的。当用户缩小可视化效果时,间隔会增加,从而产生更粗粒度的聚合。同样,如果用户放大,间隔会缩短,从而获得更精细的聚合。
有关更多信息,请参阅 全局变量。
-
相对时间-覆盖各个面板的相对时间范围,这会使它们与仪表板右上角的仪表板时间选择器中选择的时间范围不同。您可以使用它在同一个仪表板上显示不同时间段或日期的指标。
注意
当仪表板的时间范围为绝对值时,面板时间覆盖不起作用。
示例 相对时间字段 最近 5 分钟
now-5m
到目前为止的那一天
now/d
最近 5 天
now-5d/d
本周到目前为止
now/w
过去 2 年
now-2y/y
-
Time shift — 通过相对于时间选择器偏移各个面板的开始和结束来覆盖其时间范围。例如,您可以将面板的时间范围更改为比仪表板时间选择器早两个小时。
注意
当仪表板的时间范围为绝对值时,面板时间覆盖不起作用。
示例 时移字段 持续整整一周
1w/w
整整两周前
2w/w
过去整整一个月
1M/M
整整一年
1d/y
过去一整年
1y/y
-
缓存超时-(仅在数据源中可用时才可见)如果您的时间序列存储具有查询缓存,则覆盖默认的缓存超时。将此值指定为以秒为单位的数值。