查询和转换数据
Grafana 支持多种类型的数据源。数据源查询返回 Grafana 可以转换和可视化的数据。每个数据源都有自己的查询语言,并且每个数据源插件都实现了一个称为查询编辑器的查询构建用户界面。
关于查询
Grafana 面板通过查询与数据源通信,查询检索用于可视化的数据。查询是使用数据源查询语言编写的问题。
您可以在面板的数据源选项中配置查询频率和数据收集限制。Grafana 每个面板最多支持 26 个查询。
重要提示:您必须熟悉数据源的查询语言。有关更多信息,请参阅数据源。
查询编辑器

每个数据源的查询编辑器都提供了一个定制的用户界面,帮助您编写利用其独特功能的查询。
由于查询语言的差异,每个数据源查询编辑器的外观和功能都不同。根据您的数据源,查询编辑器可能会提供自动完成功能、指标名称、变量建议或可视化查询构建界面。
例如,此视频演示了可视化 Prometheus 查询构建器
这里应该有一个视频,但出于某种原因它不见了。可能是我们输入的 ID 不正确(糟糕!),或者 Vimeo 服务宕机了。如果是后者,我们预计他们很快就会恢复正常。在此期间,请查看我们的博客!
有关特定数据源独特查询编辑器功能的详细信息,请参阅其文档
- 对于 Grafana 内置的数据源,请参阅内置核心数据源,其中链接到每个核心数据源的文档。
- 对于作为插件安装的数据源,请参阅其自己的文档。
- Grafana 插件目录中的数据源插件在其目录列表中链接或包含其文档。有关插件目录的详细信息,请参阅插件管理。
- 有关 Grafana Enterprise 数据源插件文档的链接,请参阅Enterprise 插件索引。
查询语法
每个数据源使用不同的查询语言请求数据。有关特定数据源独特查询语言的详细信息,请参阅其文档。
PostgreSQL 示例
SELECT hostname FROM host WHERE region IN($region)
PromQL 示例
query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
特殊数据源
Grafana 还包括三种特殊数据源:Grafana、Mixed 和 Dashboard。有关详细信息,请参阅数据源
导航到查询选项卡
面板的查询选项卡包含以下元素
- 数据源选择器:选择要查询的数据源。有关数据源的更多信息,请参阅数据源。
- 查询选项:设置最大数据检索参数和查询执行时间间隔。
- 查询检查器按钮:打开查询检查器面板,您可以在其中查看和优化查询。
- 查询编辑器列表:列出您已编写的查询。
- 表达式:使用表达式构建器创建告警表达式。有关表达式的更多信息,请参阅使用表达式处理数据。

添加查询
查询返回 Grafana 在仪表盘面板中可视化的数据。创建面板时,Grafana 会自动选择默认数据源。
添加查询的步骤
编辑要添加查询的面板。
点击查询选项卡。
点击数据源下拉菜单并选择一个数据源。
如果您正在创建新的仪表盘,添加第一个面板时系统会提示您选择一个数据源。
点击查询选项配置所需的最大数据点数量。有关查询选项的更多信息,请参阅查询选项。
使用查询编辑器编写查询。
点击应用。
Grafana 查询数据源并可视化数据。
管理查询
Grafana 以可折叠的查询行组织查询。每个查询行都包含一个查询编辑器,并用字母(A、B、C 等)标识。
您可以
查询选项
点击数据源选择器旁边的查询选项,查看选定数据源的设置。在此处进行的更改仅影响此面板中的查询。

Grafana 设置的默认值以深灰色文本显示。更改以白色文本显示。要将字段恢复为默认设置,请删除字段中的白色文本。
面板数据源查询选项包括
最大数据点:如果数据源支持,此设置指定返回的每个序列的最大数据点数量。如果查询返回的数据点多于最大数据点设置,则数据源会通过平均、最大或其他函数对数据点进行聚合来减少返回的数量。
您可以限制数据点数量以提高查询性能或平滑可视化线条。默认值是图表的宽度(或像素数量),因为图表面板只能显示与其空间相匹配的数据点数量。
对于流式数据,Grafana 使用最大数据点值作为滚动缓冲区。流式是一种连续的数据流,缓冲将流分成块。例如,Loki 在其实时跟踪模式下流式传输数据。
最小间隔:为自动计算的间隔设置最小限制,这通常是最小抓取间隔。如果每 15 秒保存一个数据点,则低于此间隔的设置不会带来好处。您也可以将其设置为高于抓取间隔的最小值,以检索更粗粒度且运行良好的查询。
注意
“最小间隔”对应于 Prometheus 中的“最小步长”。更改 Prometheus 间隔会改变查询范围的开始和结束,因为 Prometheus 会将范围与间隔对齐。有关更多详细信息,请参阅最小步长。
间隔:设置一个时间跨度,您可以在按时间聚合或分组数据点时使用。
Grafana 会自动计算一个适当的间隔,您可以在模板查询中将其用作变量。该变量以秒 (
$__interval
) 或毫秒 ($__interval_ms
) 为单位。间隔通常用于诸如 sum 或 average 的聚合函数。例如,这是一个使用间隔变量的 Prometheus 查询:
rate(http_requests_total[$__interval])
。这个自动间隔是根据图表的宽度计算得出的。当用户缩小可视化视图时,间隔会增大,从而产生更粗粒度的聚合。同样,如果用户放大,间隔会减小,从而产生更细粒度的聚合。
有关更多信息,请参阅全局变量。
相对时间:覆盖单个面板的相对时间范围,使其与仪表盘右上角时间选择器中选择的时间范围不同。您可以使用此功能在同一仪表盘上显示不同时间段或日期的指标。
注意:当仪表盘的时间范围是绝对时间时,面板时间覆盖无效。
示例 相对时间字段 最近 5 分钟 now-5m
今天到目前为止 now/d
最近 5 天 now-5d/d
本周到目前为止 now/w
最近 2 年 now-2y/y
时间偏移:通过相对于时间选择器偏移面板的开始和结束时间来覆盖单个面板的时间范围。例如,您可以将面板的时间范围偏移到比仪表盘时间选择器早两个小时。
注意:当仪表盘的时间范围是绝对时间时,面板时间覆盖无效。
示例 时间偏移字段 过去整周 1w/w
两周前整两周 2w/w
过去整月 1M/M
今年整年 1d/y
去年整年 1y/y
缓存超时:(仅在数据源可用时可见)如果您的时间序列存储具有查询缓存,则覆盖默认缓存超时。将此值指定为以秒为单位的数值。