菜单
Grafana Cloud Enterprise 开源 RSS

查询和转换数据

Grafana 支持多种类型的数据源。数据源查询返回 Grafana 可以转换和可视化的数据。每个数据源都有自己的查询语言,并且每个数据源插件都实现了一个称为查询编辑器的查询构建用户界面。

关于查询

Grafana 面板通过查询与数据源通信,查询检索用于可视化的数据。查询是使用数据源查询语言编写的问题。

您可以在面板的数据源选项中配置查询频率和数据收集限制。Grafana 每个面板最多支持 26 个查询。

重要提示:必须熟悉数据源的查询语言。有关更多信息,请参阅数据源

查询编辑器

The InfluxDB query editor

每个数据源的查询编辑器都提供了一个定制的用户界面,帮助您编写利用其独特功能的查询。

由于查询语言的差异,每个数据源查询编辑器的外观和功能都不同。根据您的数据源,查询编辑器可能会提供自动完成功能、指标名称、变量建议或可视化查询构建界面。

例如,此视频演示了可视化 Prometheus 查询构建器

有关特定数据源独特查询编辑器功能的详细信息,请参阅其文档

  • 对于 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 还包括三种特殊数据源:GrafanaMixedDashboard。有关详细信息,请参阅数据源

面板的查询选项卡包含以下元素

  • 数据源选择器:选择要查询的数据源。有关数据源的更多信息,请参阅数据源
  • 查询选项:设置最大数据检索参数和查询执行时间间隔。
  • 查询检查器按钮:打开查询检查器面板,您可以在其中查看和优化查询。
  • 查询编辑器列表:列出您已编写的查询。
  • 表达式:使用表达式构建器创建告警表达式。有关表达式的更多信息,请参阅使用表达式处理数据
The Query tab of the panel editor

添加查询

查询返回 Grafana 在仪表盘面板中可视化的数据。创建面板时,Grafana 会自动选择默认数据源。

添加查询的步骤

  1. 编辑要添加查询的面板。

  2. 点击查询选项卡。

  3. 点击数据源下拉菜单并选择一个数据源。

    如果您正在创建新的仪表盘,添加第一个面板时系统会提示您选择一个数据源。

  4. 点击查询选项配置所需的最大数据点数量。有关查询选项的更多信息,请参阅查询选项

  5. 使用查询编辑器编写查询。

  6. 点击应用

Grafana 查询数据源并可视化数据。

管理查询

Grafana 以可折叠的查询行组织查询。每个查询行都包含一个查询编辑器,并用字母(A、B、C 等)标识。

您可以

图标说明
Help icon
切换查询编辑器帮助。如果数据源支持,点击此图标可显示有关如何使用查询编辑器的信息或提供对常用查询的快速访问。
Duplicate icon
复制查询。处理多个相似的复杂查询时,复制查询非常有用,可以用于尝试不同的变体或进行微小修改。
Hide icon
隐藏查询。Grafana 不会将隐藏的查询发送到数据源。
Remove icon
移除查询。移除查询会永久删除它,但有时可以通过恢复到面板之前保存的版本来恢复已删除的查询。
Drag icon
重排查询。通过点击并按住拖拽图标,然后将查询拖到所需位置来更改查询顺序。结果的顺序反映了查询的顺序,因此您通常可以根据查询顺序调整可视化结果。

查询选项

点击数据源选择器旁边的查询选项,查看选定数据源的设置。在此处进行的更改仅影响此面板中的查询。

Data source query options

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
Give it a try using Grafana Play
使用 Grafana Play 试一试

使用 Grafana Play,您可以探索并了解其工作原理,从实际示例中学习,加速您的开发。此功能可在时间范围覆盖中看到。

  • 时间偏移:通过相对于时间选择器偏移面板的开始和结束时间来覆盖单个面板的时间范围。例如,您可以将面板的时间范围偏移到比仪表盘时间选择器早两个小时。

    注意:当仪表盘的时间范围是绝对时间时,面板时间覆盖无效。

    示例时间偏移字段
    过去整周1w/w
    两周前整两周2w/w
    过去整月1M/M
    今年整年1d/y
    去年整年1y/y
  • 缓存超时:(仅在数据源可用时可见)如果您的时间序列存储具有查询缓存,则覆盖默认缓存超时。将此值指定为以秒为单位的数值。