View a markdown version of this page

変数構文 - Amazon Managed Grafana

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

変数構文

このドキュメントのトピックは、Grafana バージョン 9.x をサポートする Grafana ワークスペース向けです。

Grafana バージョン 12.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 12 での作業

Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「Grafana バージョン 10 での作業」を参照してください。

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"