29

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

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

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

4

3 回答 3

46

我知道有两种方法:

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

    increase(http_requests_total[$__interval])
    

有一个缺点是 $__interval 变量的值会根据图形的分辨率进行调整,但这在某些情况下也可能会有所帮助。

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

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

假设您命名它timeRange,那么查询将如下所示:

increase(http_requests_total[$timeRange])

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

于 2017-11-08T07:24:04.527 回答
11

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

 increase(gin_total_requests[$__range])

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

我添加了文档链接来支持我的答案 Grafana 5.3+

于 2020-05-07T15:19:22.993 回答
2

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

它对我有用,更重要的是,您应该 Max data point在查询选项中设置为 1 。

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

于 2021-03-17T09:55:50.813 回答