Prometheus 查询编辑器
Grafana 为 Prometheus 数据源提供了查询编辑器,用于创建 PromQL 查询。有关 PromQL 的更多信息,请参阅 查询 Prometheus。
有关在 Grafana 中查询数据源的通用文档,请参阅 查询和转换数据。
有关所有查询编辑器共有的选项和功能,请参阅 查询编辑器。
选择查询编辑模式
Prometheus 查询编辑器有两种模式
下文将更详细地解释每种模式。

两种模式是同步的,因此您可以切换。但是,如果在切换模式时查询出现问题,将会出现警告消息。
工具栏元素
查询编辑器工具栏包含以下元素
快速启动查询 - 单击查看操作模式列表,帮助您快速开始向查询添加多个操作。其中包括
- Rate 查询启动器
- 直方图查询启动器
- 二元查询启动器
单击每个旁边的箭头可查看可添加到查询中的选项。
- 解释 - 切换以显示所有查询组件和操作的分步解释。

- 构建器/代码 - 单击工具栏上相应的构建器或代码标签页选择编辑器模式。
配置通用选项
无论在哪种模式下,您都可以通过设置一些选项来配置查询编辑器中 Prometheus 特定的选项。

图例
图例设置定义了时间序列的名称。您可以使用预定义或自定义格式。
- 自动 - 显示唯一标签。如果一个序列有多个标签,也会显示所有重叠的标签。
- 详细 - 显示所有标签名称。
- 自定义 - 使用模板选择将包含哪些标签。例如,
{{hostname}}
会被标签hostname
的标签值替换。清除输入并单击输入框外部以选择其他模式。
最小步长
最小步长设置定义了数据点之间间隔的下限。例如,将其设置为 1h
表示测量是每小时进行的。此设置支持 $__interval
和 $__rate_interval
宏。请注意,查询范围日期会与步长对齐,这可能会改变范围的开始和结束时间。
格式
在以下格式选项之间切换
- 时间序列 - 默认的时间序列格式。有关时间序列数据帧以及时间和值字段如何构建的信息,请参阅 时间序列类型格式。
- 表格 - 这仅适用于 表格面板。
- 热力图 - 在 热力图面板上显示直方图类型的指标,通过将累积直方图转换为常规直方图并按桶边界对序列进行排序。
类型
类型设置查询类型。这包括
- Both - 默认选项。返回范围查询和即时查询的结果。
- 范围 - 返回一个范围向量,该向量包含一组时间序列数据,其中每个时间序列都有一个时间范围内的多个数据点。您可以选择线、条、点、堆叠线或堆叠条
- 即时 - 每个查询返回一个数据点,并且仅返回给定时间范围内的最新点。结果可以表格形式或原始数据形式显示。要在时间序列面板中显示即时查询结果,首先添加一个字段覆盖,然后向覆盖添加一个名为
Transform
的属性,最后从Transform 下拉菜单中选择Constant
。
有关更多信息,请参阅 时间序列转换选项文档。
注意
Grafana 会修改查询请求的日期,使其与动态计算的步长对齐。这确保了指标数据的一致显示,并且 Prometheus 要求这样做以缓存结果。但是,将范围与步长对齐可能会导致图形右侧边缘出现少量数据间隙或更改范围的开始日期。例如,15 秒步长将范围与可被 15 秒整除的 Unix 时间对齐,而 1 周的最小步长将范围与星期四的周初对齐。
示例
切换示例以运行包含示例的查询。示例是 Prometheus 特有的。有关更多信息,请参阅 示例简介。
注意
无法通过即时查询类型添加示例。
检查器
单击检查器以获取有关查询的详细统计信息。检查器作为一种调试工具,可以“检查”您的查询。它在统计下提供查询统计信息,在查询下提供请求响应时间,在 {} JSON 下提供数据帧详情,以及在数据下提供数据的形状。

构建器模式
构建器模式帮助您使用可视化界面构建查询。此选项最适合对 Prometheus 和 PromQL 经验有限或没有经验的用户。
此视频演示了如何使用可视化 Prometheus 查询构建器
这里应该有一个视频,但由于某些原因没有显示。可能是我们输入了错误的 ID (抱歉!),或者 Vimeo 暂时停机。如果是后者,我们预计它们很快就会恢复正常运行。在此期间,您可以查看我们的博客!
指标

当您准备好创建查询时,可以从指标下的下拉列表中选择特定的指标名称。数据源根据选定的时间范围从 Prometheus 服务器请求可用指标列表。在下拉菜单打开时,您也可以在选择器中输入文本来搜索和过滤列表。
指标浏览器

如果您想在查询构建器中进一步探索您的指标,可以通过单击查询构建器中指标选择组件的第一个选项来打开指标浏览器。
指标浏览器与指标浏览器不同。指标浏览器仅存在于查询构建器部分。指标浏览器仅存在于代码编辑器中。指标浏览器目前尚不具备浏览标签的能力,而指标浏览器可以显示指标名称上的所有标签。
指标浏览器以分页表格列表显示所有指标。列表显示指标总数,以及每个指标的名称、类型和描述。您可以在搜索框中输入文本以过滤结果。您还可以按类型过滤。
还有以下项目的附加设置
- 在搜索中包含描述。按名称和描述搜索。
- 包含无元数据的结果。许多 Prometheus 指标没有元数据。这允许用户包含未定义类型和描述的指标。
- 禁用文本换行。
- 启用正则表达式搜索。这使用 Prometheus API 启用对指标名称的正则表达式搜索。
标签过滤器
从下拉列表中选择所需的标签及其值。选择指标后,数据源会从服务器请求可用标签及其值。使用 +
按钮添加标签,使用 x
按钮移除标签。
操作

选择+ 操作按钮为查询添加操作。
查询编辑器将操作分组到以下部分
- 聚合 - 有关更多信息,请参阅 聚合运算符。
- 范围函数 - 有关更多信息,请参阅 函数。
- 函数 - 有关更多信息,请参阅 函数。
- 二元运算 - 有关更多信息,请参阅 二元运算符。
- 三角函数 - 有关更多信息,请参阅 三角函数。
- 时间函数 - 有关更多信息,请参阅 函数。
所有操作都在操作标题下有函数参数。单击operator
查看支持函数的完整列表。某些操作允许您将特定标签应用于函数。

有些操作只有在特定顺序下才有意义。如果添加某个操作会导致无意义的查询,查询编辑器会将该操作添加到正确的位置。
提示

查询编辑器可以检测哪些操作最适合某些选定的指标。如果检测到,它会在+ 操作按钮旁边显示一个提示。
要将该操作添加到查询中,请单击提示。
对查询满意后,单击运行查询。
代码模式
代码模式适用于有 PromQL(Prometheus 的查询语言)经验的 Prometheus 资深用户。代码模式编辑器允许您像在 Prometheus 中一样创建查询。有关 PromQL 的更多信息,请参阅 查询 Prometheus。

用户界面 (UI) 还允许您选择指标、标签、过滤器和操作。
您可以使用具有自动补全功能和语法高亮显示的文本编辑器编写复杂的查询。它还包含一个指标浏览器,可进一步帮助您编写查询。
使用自动补全
代码模式的自动补全功能在输入时自动工作。查询编辑器可以自动补全静态函数、聚合、关键字,以及指标和标签等动态项。自动补全下拉菜单包含可用建议项的文档(如果存在)。
指标浏览器
指标浏览器用于查找指标并选择相关标签,以帮助您构建基本查询。当您在代码
模式下单击指标浏览器时,它会显示所有可用指标和标签。如果您的 Prometheus 实例支持,每个指标还会通过工具提示显示其 HELP
和 TYPE
。

在步骤 1 下选择指标后,浏览器会缩小可用标签范围,仅显示适用于该指标的标签。然后,您可以在步骤 2 中选择一个或多个标签。在步骤 3 中,为每个标签选择一个或多个值以缩小查询范围。在步骤 4 中,您可以选择使用查询来运行查询,选择用作 Rate 查询向查询添加 rate 操作($__rate_interval
),选择验证选择器验证选择器是否有效并显示找到的序列数量,或选择清除清除您的选择并重新开始。
注意
如果您记不住指标名称,也可以选择一些标签来缩小列表范围,然后查找相关的标签值。
指标浏览器中的所有列表上方都有一个搜索字段,用于快速过滤匹配特定字符串的指标或标签。值部分只有一个搜索字段,其过滤功能适用于所有标签,以帮助您在选择标签后查找跨标签的值。
例如,在您的标签 app
、job
、job_name
中,可能只有一个包含您正在寻找的值。
对查询满意后,单击运行查询。