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

How to use the selected period of time in a query?

我正在将 Grafana 与 Prometheus 一起使用,我想构建 这取决于右上角的 selected 时间段 selected屏幕.

是否有任何变量(或类似变量)可用于查询字段?

换句话说,如果我 select 24hs 我想在查询中使用该数据。

我知道的有两种方式:

  1. 您可以像这样使用 $__interval 变量:

    increase(http_requests_total[$__interval])
    

$__interval 变量的值会根据图表的分辨率进行调整,但这在某些情况下可能会有帮助。

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

转到仪表板的 Templating settings, create new variable with the type of Interval。启用"Auto Option",调整"Step count"等于1。然后确保 "auto" 在仪表板顶部的相应下拉列表中 selected。

假设您将其命名为 timeRange,则查询将如下所示:

increase(http_requests_total[$timeRange])

这个变量不会被图形分辨率调整,如果你 select "Last 10 hours" 它的值将是 10h.

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

 increase(gin_total_requests[$__range])

既然可以使用内置全局变量,为什么还要创建变量。

我添加了文档链接以支持我的回答 Grafana 5.3+

count_over_time({job="gerrit-sshd"}[$__interval])

它对我有用,而且,您应该在查询选项中将 Max data point 设置为 1。

然后 $__interval 与 Grafana 右上角面板的时间范围相同。