翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
変数構文
このドキュメントトピックは、Grafana バージョン 10.x をサポートする Grafana ワークスペース向けに設計されています。
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 9 での作業。
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 8 での作業。
パネルタイトルとメトリクスクエリは、2 つの異なる構文を使用して変数を参照できます。
-
$varname
– この構文は読みやすいですが、単語の途中で変数を使用することはできません。例:
apps.frontend.$server.requests.count
-
${var_name}
– 式の途中で変数を使用する場合は、この構文を使用します。 -
${var_name:<format>}
– この形式により、Grafana が値を解釈する方法をより詳細に制御できます。詳細については、次のリストの「高度な変数形式オプション」を参照してください。 -
[[varname]]
– は使用しないでください。この構文は古く、廃止されました。今後のリリースで削除されます。
クエリがデータソースに送信される前に、クエリは補間されます。つまり、変数は現在の値に置き換えられます。補間中に、クエリ言語の構文とその使用場所に準拠するために、変数値をエスケープすることがあります。例えば、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
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 - Graphite
複数の値を持つ変数を glob にフォーマットします (Graphite クエリの場合)。
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 - Elasticsearch
Elasticsearch の 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'
Raw
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'"
SQLstring
単一値と複数値の変数をカンマ区切り'
の文字列にフォーマットし、 によって各値をエスケープ''
し、各値を で引用符で囲みます'
。
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"