變數語法 - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

變數語法

本文件主題是針對支援 Grafana 10.x 版的 Grafana 工作區所設計。

如需支援 Grafana 9.x 版的 Grafana 工作區,請參閱。在 Grafana 第 9 版中工作

如需支援 Grafana 8.x 版的 Grafana 工作區,請參閱。在 Grafana 第 8 版中工作

面板標題和量度查詢可以使用兩種不同的語法來參考變數。

  • $varname— 此語法很容易閱讀,但不允許您在單詞中間使用變量。

    範例apps.frontend.$server.requests.count

  • ${var_name}— 當您想要在運算式中間使用變數時,請使用此語法。

  • ${var_name:<format>}— 此格式可讓您更好地控制 Grafana 解譯值的方式。如需詳細資訊,請參閱此清單後面的進階變數格式選項

  • [[varname]]— 請勿使用。這個語法是舊的,已被棄用。它將在 future 的版本中移除。

在將查詢傳送至資料來源之前,會內插查詢,這表示變數會被其目前值取代。在內插期間,變數值可能會逸出,以符合查詢語言的語法及其使用位置。例如,在 InfluxDB 或 Prometheus 查詢的正則表達式中使用的變量將被正則表達式轉義。

進階變數格式選項

變數內插補點的格式取決於資料來源,但在某些情況下,您可能會想要變更預設格式。

例如,MySQL 資料來源的預設值是以逗號分隔的方式加入多個值,並加上引號:'server01','server02'。在某些情況下,您可能希望使用不帶引號的逗號分隔字符串:server01,server02。您可以使用下面列出的高級變量格式化選項來實現這一目標。

一般語法

語法: ${var_name:option}

如果指定了任何無效的格式化選項,則glob為預設/後援選項。

CSV

將具有多個值的變數格式化為逗號分隔字串。

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:csv}' Interpolation result: 'test1,test2'

分散式

格式化與 OpenTSDB 的自定義格式的多個值的變量。

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:distributed}' Interpolation result: 'test1,servers=test2'

雙引號

將單值和多值變數格式化為逗號分隔的字串,在每個值"中逸出,\"並以每個值加上引號。"

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:doublequote}' Interpolation result: '"test1","test2"'

水珠-石墨

將具有多個值的變量格式化為 glob(用於石墨查詢)。

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:glob}' Interpolation result: '{test1,test2}'

JSON

將具有多個值的變數格式化為逗號分隔字串。

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:json}' Interpolation result: '["test1", "test2"]'

Lucene-彈性搜索

格式化具有 Lucene 格式的多個值的變量彈性搜索。

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:lucene}' Interpolation result: '("test1" OR "test2")'

百百年代

格式化單一和多值變數,以便在 URL 參數中使用。

servers = [ 'foo()bar BAZ', 'test2' ] String to interpolate: '${servers:percentencode}' Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'

將具有多個值的變量格式化為管道分隔的字符串。

servers = [ 'test1.', 'test2' ] String to interpolate: '${servers:pipe}' Interpolation result: 'test1.|test2'

原料

關閉資料來源特定的格式,例如 SQL 查詢中的單引號。

servers = [ 'test.1', 'test2' ] String to interpolate: '${var_name:raw}' Interpolation result: 'test.1,test2'

Regex

格式化具有多個值的變量到正則表達式字符串。

servers = [ 'test1.', 'test2' ] String to interpolate: '${servers:regex}' Interpolation result: '(test1\.|test2)'

单引号

將單值和多值變數格式化為逗號分隔的字串,在每個值'中逸出,\'並以每個值加上引號。'

servers = [ 'test1', 'test2' ] String to interpolate: '${servers:singlequote}' Interpolation result: "'test1','test2'"

方字符串

將單值和多值變數格式化為逗號分隔的字串,在每個值'中逸出,''並以每個值加上引號。'

servers = [ "test'1", "test2" ] String to interpolate: '${servers:sqlstring}' Interpolation result: "'test''1','test2'"

Text (文字)

將單值和多值變量格式化為其文本表示形式。對於單個變量,它只會返回文本表示。對於多值變量,它將返回與+組合的文本表示。

servers = [ "test1", "test2" ] String to interpolate: '${servers:text}' Interpolation result: "test1 + test2"

查詢參數

將單值和多值變數格式化為其查詢參數表示。範例:var-foo=value1&var-foo=value2

servers = [ "test1", "test2" ] String to interpolate: '${servers:queryparam}' Interpolation result: "var-servers=test1&var-servers=test2"