使用 Prometheus 数据源 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Prometheus 数据源

Prometheus 设置

名称 描述
Name 数据源名称。这就是您在面板和查询中查看数据源的方式。
Default 默认数据源意味着将为新面板预先选择该数据源。
Url 您的 Prometheus 服务器的网址;例如,。https://prometheus.example.org:9090
Access 服务器(默认)= 必须可以从 Grafana 后端/服务器访问网址。
Basic Auth 启用对 Prometheus 数据源的基本身份验证。
User 基本身份验证的用户名。
Password 用于基本身份验证的密码。
Scrape interval 将其设置为 Prometheus 中配置的典型抓取和评估间隔。默认为 15 秒。
Disable metrics lookup 选中此选项将禁用查询字段自动完成中的指标选择器和指标/标签支持。如果您在使用较大的 Prometheus 实例时遇到性能问题,这会有所帮助。
Custom Query Parameters 在 Prometheus 查询网址中添加自定义参数。例如timeoutpartial_responsededup、或max_source_resolution。应将多个参数与 “&” 连接在一起。

Prometheus 查询编辑器

以下各节提供控制面板和 “浏览” 中的 Prometheus 查询编辑器的信息和选项。

仪表板中的查询编辑器

在编辑模式下打开图表,方法是选择标题然后选择 “编辑”(或者在面板上暂停时按 e 键)。

名称 描述
Query expression 有关 Prometheus 查询表达式的更多信息,请参阅 Prometheus 文档。
Legend format 使用名称或模式控制时间序列的名称。例如{{hostname}},被替换为标签的标签值hostname
Min step Prometheus 范围查询的step参数以及和变量的额外下限。$__interval $__rate_interval该限制是绝对的,不能通过 “分辨率” 设置进行修改。
Resolution 1/1设置 Prometheus 范围查询的$__interval变量和step参数,使每个像素对应一个数据点。为了获得更好的性能,请使用较低的分辨率。 1/2每隔一个像素只检索一个数据点,每 10 个像素1/10检索一个数据点。请注意,最小时间间隔最小步长都限制了$__interval和的最终值step
Metric lookup 在此输入字段中搜索指标名称。
Format as TableTime series、或之间切换HeatmapTable仅在表格面板中起作用。 Heatmap适用于在热图面板上显示直方图类型的指标。它将累积直方图转换为常规直方图,并按桶边界对系列进行排序。
Instant 执行 “即时” 查询,仅返回 Prometheus 为请求的时间序列抓取的最新值。即时查询返回结果的速度比普通范围查询快得多。使用它们来查找标签集。
Min time interval 该值乘以 “分辨率” 设置中的分母,可为 Promethe us 范围查询的$__interval变量和参数step设置下限。默认为数据源选项中设置的抓取间隔
注意

Amazon Managed Grafana 会修改查询的请求日期,使其与动态计算的步骤保持一致。这样可以确保指标数据的一致显示,但可能会导致图表右边缘的数据间隙很小。

仪表板中的即时查询

Prometheus 数据源允许您运行即时查询,即时查询仅查询最新值。您可以在表格面板中可视化结果,以查看时间序列的所有可用标签。

即时查询结果由每个系列仅一个数据点组成。它们可以在系列覆盖的帮助下显示在图表面板中。要在图表中将它们显示为最新值点,请添加系列覆盖并选择Points > true。要在整个图表上显示一条水平线,请添加系列覆盖并选择 “Transform > constant有关系列覆盖的更多信息,请参阅系列覆盖”。

“浏览” 中的查询编辑器

名称 描述
Query expression 有关 Prometheus 查询表达式的更多信息,请参阅 Prometheus 文档。
Step StepPrometheus 范围查询的参数。此处可以使用时间单位,例如:5s、1m、3h、1d、1y。如果未指定单位,则默认单位为s(秒)。
Query type RangeInstant 或者 Both。运行 Range 查询时,查询结果将显示在图表和表格中。即时查询仅返回 Prometheus 为请求的时间序列抓取的最新值,该值将显示在表中。如果选择 “者”,则同时运行即时查询和范围查询。范围查询的结果以图表形式显示,即时查询的结果显示在表中。

指标浏览器

指标浏览器允许您快速查找指标并选择相关标签来构建基本查询。当你打开浏览器时,你会看到所有可用的指标和标签。如果您的 Prometheus 实例支持,则每个指标都将以工具提示的形式显示其帮助和类型。

选择指标时,浏览器会缩小可用标签的范围,仅显示适用于该指标的标签。然后,您可以选择一个或多个标签,其可用标签值显示在底部的列表中。为每个标签选择一个或多个值以缩小查询范围。

注意

如果您不记得开头的指标名称,也可以先选择几个标签,缩小列表范围,然后找到相关的标签值。

指标浏览器中的所有列表上方都有一个搜索字段,可以快速筛选与特定字符串匹配的指标或标签。值部分只有一个搜索字段。它的筛选适用于所有标签,以帮助您在标签中选择值后在标签上查找值,例如,在您的标签应用程序、作业、job_name 中,只有一个可能与您要查找的值相匹配。

对查询感到满意后,单击 “使用查询” 来运行查询。“用作费率查询” 按钮可添加费率 (...) [$__interval] 围绕您的查询,以帮助编写对计数器指标的查询。“验证选择器” 按钮将向 Prometheus 检查该选择器有多少时间序列可用。

限制

指标浏览器的硬限制为 10,000 个标签(密钥)和 50,000 个标签值(包括指标名称)。如果您的 Prometheus 实例返回更多结果,则浏览器将继续运行。但是,如果超过这些最大限制,结果集将被截断。

模板化

无需在指标查询中对服务器、应用程序和传感器名称等内容进行硬编码,而是可以使用变量来代替它们。变量显示为仪表板顶部的下拉选择框。您可以使用这些下拉框来更改控制面板中显示的数据。

有关模板和模板变量的更多信息,请参阅模板和变量

查询变量

查询类型的变量允许您查询 Prometheus 以获取指标、标签或标签值的列表。Prometheus 数据源插件提供了可在查询输入字段中使用的以下函数。

名称 描述
label_names() 返回标签名称列表。
label_values(label) 返回每个指标label中的标签值列表。
label_values(metric, label) 返回指定指标label中标签值的列表。
metrics(metric) 返回与指定正则metric表达式匹配的指标列表。
query_result(query) 返回 Prometheus 的查询结果列表。query

有关指标名称、标签名称和标签的信息,请参阅 Prometheus 文档

使用间隔和范围变量

注意

$__range$__range_s、和的支持仅$__range_ms在 Grafana v5.3 中提供。

可以在查询变量中使用一些全局变量:$__interval$__interval_ms$__range$__range_s、和$__range_ms。有关更多信息,请参阅 全局变量。由于query_result函数不支持查询,因此必须筛选变量查询时,它们可以方便地与该label_values函数一起使用。

要在仪表板上更改时间范围时获得正确的实例,请确保将变量的refresh触发器设置为On Time Range Change

以下代码示例演示如何根据控制面板中显示的时间范围内的平均 QPS,用最繁忙的五个请求实例填充变量。

Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance))) Regex: /"([^"]+)"/

以下代码示例演示如何使用在控制面板中显示的时间范围内使用$__range_s具有特定状态的实例来填充变量。

Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>) Regex:

使用$__rate_interval变量

$__rate_interval变量本应用于速率函数。它被定义为最大值($__interval+ 抓取间隔,4 * 抓取间隔)。抓取间隔是最小步长设置(又名 query_interval,每个 PromQL 查询的设置)(如果已设置),否则为 Prometheus 数据源中设置的抓取间隔(但忽略面板中的任何最小间隔设置,因为后者由分辨率设置修改)。

在查询中使用变量

有两种语法:

  • $<varname>示例:费率 (http_requests_total {job=~ “$job”} [5m])

  • [[varname]]示例:rate (http_requests_total {job=~ “[job]]”} [5m])

为什么是两种方式? 第一种语法更易于阅读和编写,但不允许在单词中间使用变量。启用 “多值” 或 “包括所有值” 选项后,Grafana 会将标签从纯文本转换为与正则表达式兼容的字符串。这意味着你必须使用=~而不是=

注释

您可以使用注释将丰富的事件信息叠加在图表之上。您可以使用 “控制板” 菜单或 “批注” 视图添加注释查询。有关更多信息,请参阅 注释

Prometheus 支持两种查询注释的方法。

  • 常规指标查询

  • Prometheus 查询待处理和触发警报。有关更多信息,请参阅在运行时检查警报)。

step 选项可用于限制查询返回的事件数量。