

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

# 変数構文
<a name="v12-dash-variable-syntax"></a>

****  
このドキュメントトピックは、Grafana **バージョン 12.x をサポートする Grafana** ワークスペース向けに設計されています。  
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 10 での作業](using-grafana-v10.md)」を参照してください。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

パネルタイトルとメトリクスクエリは、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"
```