本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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 查询网址中添加自定义参数。例如timeout ,partial_response dedup 、或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
|
在Table Time
series 、或之间切换Heatmap 。 Table 仅在表格面板中起作用。 Heatmap 适用于在热图面板上显示直方图类型的指标。它将累积直方图转换为常规直方图,并按桶边界对系列进行排序。 |
Instant
|
执行 “即时” 查询,仅返回 Prometheus 为请求的时间序列抓取的最新值。即时查询返回结果的速度比普通范围查询快得多。使用它们来查找标签集。 |
Min time interval
|
该值乘以 “分辨率” 设置中的分母,可为 Promethe$__interval 变量和参数step 设置下限。默认为数据源选项中设置的抓取间隔。 |
注意
Amazon Managed Grafana 会修改查询的请求日期,使其与动态计算的步骤保持一致。这样可以确保指标数据的一致显示,但可能会导致图表右边缘的数据间隙很小。
仪表板中的即时查询
Prometheus 数据源允许您运行即时查询,即时查询仅查询最新值。您可以在表格面板中可视化结果,以查看时间序列的所有可用标签。
即时查询结果由每个系列仅一个数据点组成。它们可以在系列覆盖的帮助下显示在图表面板中。要在图表中将它们显示为最新值点,请添加系列覆盖并选择Points > true
。要在整个图表上显示一条水平线,请添加系列覆盖并选择 “Transform > constant
有关系列覆盖的更多信息,请参阅系列覆盖”。
“浏览” 中的查询编辑器
名称 | 描述 |
---|---|
Query expression
|
有关 Prometheus 查询表达式的更多信息,请参阅 Prometheus 文档。 |
Step
|
Step Prometheus 范围查询的参数s (秒)。 |
Query type
|
Range 、Instant 或者 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 选项可用于限制查询返回的事件数量。