如何在查询中使用选定的时间段?

Fac*_*mbo 12 grafana prometheus promql grafana-templating

我正在使用Grafana和Prometheus,我想构建一个查询,该查询取决于在屏幕右上角选择的选定时间段.

在查询字段中是否有任何变量(或类似的东西)?

换句话说,如果我选择24小时,我想在查询中使用该数据.

Yoo*_* N. 17

我知道有两种方法:

  1. 您可以使用$ __ interval变量,如下所示:

    increase(http_requests_total[$__interval])
    
    Run Code Online (Sandbox Code Playgroud)

有一个缺点是$ __ interval变量的值是通过图表的分辨率调整的,但在某些情况下这也可能有用.

  1. 这种方法应该更适合您的情况:

转到Dashboard的模板设置,使用Interval类型创建新变量.启用"自动选项",将"步数"调整为相等1.然后确保在仪表板顶部的相应下拉列表中选择"自动".

我们假设您为其命名timeRange,然后查询将如下所示:

increase(http_requests_total[$timeRange])
Run Code Online (Sandbox Code Playgroud)

此变量不会通过图表分辨率进行调整,如果选择"过去10小时",则其值将为10h.


小智 7

如果您正在考虑使用 prometheus 作为数据源,$__range 支持您的仪表板时间很棒。

 increase(gin_total_requests[$__range])
Run Code Online (Sandbox Code Playgroud)

当您可以使用内置的全局变量时,为什么要创建您的变量。

我添加了文档链接以支持我的答案 Grafan 5.3+

  • 这是问题的答案,应该位于顶部,即使顶部的答案实际上有效并且提供了有趣的方法。 (4认同)