全局变量
Grafana 具有全局内置变量,可在查询编辑器的表达式中使用。本主题按字母顺序列出它们并对其进行定义。这些变量在查询、仪表板链接、面板链接和数据链接中很有用。
$__仪表板
仅在 Grafana v6.7+ 中可用。在 Grafana 7.1 中,变量从显示当前仪表板的 UID 更改为当前仪表板的名称。
此变量是当前仪表板的名称。
__from 和 $__to
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 | 任何不包含该字符的自定义日期格式:
|
上面的语法也适用${__to}。
您也可以在 URL 中使用此变量。例如,将用户发送到显示从六小时前到现在的时间范围的仪表板:https: //play.grafana.org/d/000000012/grafana-play-home?viewPanel=2&orgId= 1?from=now -6h&to=现在
$__interval
您可以将$__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 数据源具有Group by time interval用于硬编码间隔或设置$__interval变量最小限制的字段(通过使用>语法 -> >10m)。
$__interval_ms
此变量是以$__interval毫秒为单位的变量,而不是时间间隔格式的字符串。例如,如果$__interval是20m那么$__interval_ms是1200000。
$__name
此变量仅在 Singlestat 面板中可用,并且可以在选项选项卡上的前缀或后缀字段中使用。该变量将替换为系列名称或别名。
$__org
此变量是当前组织的 ID。 ${__org.name}是当前组织的名称。
$__用户
仅在 Grafana v7.1+ 中可用
${__user.id}是当前用户的 ID。 ${__user.login}是当前用户的登录句柄。 ${__user.email}是当前用户的电子邮件。
$__范围
目前仅支持 Prometheus 和 Loki 数据源。此变量表示当前仪表板的范围。它由 计算to - from。它有一个毫秒和第二个表示形式,称为$__range_msand $__range_s。
$__rate_interval
目前仅支持 Prometheus 数据源。该$__rate_interval变量旨在用于速率函数。有关详细信息,请参阅Prometheus 查询变量。
__timeFilter
该$timeFilter变量将当前选定的时间范围作为表达式返回。例如,时间范围区间Last 7 days表达式为time > now() - 7d。
这用于多个地方,包括:
- InfluxDB 数据源的 WHERE 子句。在查询编辑器模式下,Grafana 会自动将其添加到 InfluxDB 查询中。您可以在文本编辑器模式下手动添加它:
WHERE $timeFilter. - Azure Monitor 数据源中的 Log Analytics 查询。
- MySQL、Postgres 和 MSSQL 中的 SQL 查询。
- 该
$__timeFilter变量在 MySQL 数据源中使用。
获取当前用户测试
