翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このドキュメントのトピックは、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")'
Percentencode
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'
[正規表現]
複数の値を持つ変数を正規表現文字列にフォーマットします。
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'"
[テキスト]
単一値変数と複数値変数をテキスト表現にフォーマットします。単一値の変数の場合、テキスト表現のみを返します。複数値変数の場合、テキスト表現は +
と組み合わせて返されます。
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"