Grafana 具有全局内置变量,可用于查询编辑器中的表达式。本主题按字母顺序列出并定义了这些变量。这些变量在查询、仪表板链接、面板链接和数据链接中非常有用。
仅适用于 Grafana v6.7+。在 Grafana 7.1 中,该变量从显示当前仪表板的 UID 变为显示当前仪表盘的名称。
此变量为当前仪表盘的名称。
Grafana 有两个内置的时间范围变量:$__from 和 $__to。目前默认情况下,它们总是以纪元毫秒的形式插值,但你可以控制日期格式。
注意:此特殊格式化语法仅在 Grafana 7.1.2+ 中可用
语法 | 示例结果 | 描述 |
${__from} | 1594671549254 | Unix 毫秒纪元 |
${__from:date} | 2020-07-13T20:19:09.254Z | 无参数,默认为 ISO 8601/RFC 3339 |
${__from:date:iso} | 2020-07-13T20:19:09.254Z | ISO 8601/RFC 3339 |
${__from:date:seconds} | 1594671549 | Unix 秒纪元 |
${__from:date:YYYY-MM} | 2020-07 | 任何自定义日期格式 不包含:字符的自定义日期格式。使用浏览器时间。使用 :date 或 :date:iso 表示 UTC |
上述语法也适用于 ${__to}。
您也可以在 URL 中使用此变量。例如,您可以将用户发送到一个仪表板,显示从六小时前到现在的时间范围: https://play.grafana.org/d/000000012/grafana-play-home?viewPanel=2&orgId=1?from=now-6h&to=now
您可以将 $__interval 变量用作按时间分组的参数(适用于 InfluxDB、MySQL、Postgres 和 MSSQL)、日期直方图区间(适用于 Elasticsearch),或用作汇总函数参数(适用于 Graphite)。
Grafana 会自动计算一个时间间隔,用于在查询中按时间分组。当数据点多到无法在图表中显示时,可以通过按更大的时间间隔分组来提高查询效率。在查看 3 个月的数据时,按 1 天分组比按 10 秒分组更有效,而且图表看起来也一样,查询速度也更快。$__interval 是使用时间范围和图表宽度(像素数)计算得出的。
近似计算:(to - from) / resolution
例如,如果时间范围为 1 小时,且图表为全屏显示,那么时间间隔可计算为 2m —— 点按 2 分钟间隔分组。如果时间范围是 6 个月,图表是全屏的,那么间隔可能是 1d(1 天)—— 点按天分组。
在 InfluxDB 数据源中,传统变量 $interval 是同一个变量。应使用 $__interval 代替。
InfluxDB 和 Elasticsearch 数据源有按时间间隔分组字段,可用于硬编码时间间隔或设置 $__interval 变量的最小限制(使用 > 语法 -> >10m)。
该变量是以毫秒为单位的 $__interval 变量,而不是时间间隔格式化的字符串。例如,如果 $__interval 是 20m,那么 $__interval_ms 就是 1200000。
该变量仅在 Singlestat 面板中可用,可用于选项选项卡上的前缀或后缀字段。变量将替换为系列名称或别名。
注意:从 Grafana 8.0 开始,Singlestat 面板不再可用。
该变量是当前组织的 ID,${__org.name} 是当前组织的名称。
仅适用于 Grafana v7.1+ 版本
${__user.id} 是当前用户的 ID。${__user.login} 是当前用户的登录句柄。${__user.email} 是当前用户的电子邮件地址。
目前仅支持 Prometheus 和 Loki 数据源。该变量表示当前仪表板的范围。它的计算方法是 to - from。它有毫秒和秒两种表示形式,分别称为 $__range_ms 和 $__range_s。
目前仅支持 Prometheus 数据源。$__rate_interval 变量应在速率函数中使用。有关详情,请参阅 Prometheus 查询变量。
这个变量是以毫秒为单位的 $__rate_interval 变量,而不是时间间隔格式的字符串。例如,如果 $__rate_interval 是 20m,那么 $__rate_interval_ms 就是 1200000。
$timeFilter 变量以表达式的形式返回当前选定的时间范围。例如,时间范围间隔最后 7 天表达式为 time > now() - 7d。
这在多处使用,包括:
InfluxDB 数据源的 WHERE 子句。在查询编辑器模式下,Grafana 会将其自动添加到 InfluxDB 查询中。您可以在文本编辑器模式下手动添加: WHERE $timeFilter.
Azure Monitor 数据源中的日志分析查询。
MySQL、Postgres 和 MSSQL 中的 SQL 查询。
$__timeFilter 变量用于 MySQL 数据源。
$__timezone 变量返回当前选择的时区,可以是 UTC 或 IANA 时区数据库的一个条目(例如,America/New_York)。
如果当前选择的时区是浏览器时间,Grafana 将尝试确定您的浏览器时区。