

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 변수 구문
<a name="v9-dash-variable-syntax"></a>

****  
이 설명서 주제는 **Grafana 버전 9.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 12.x를 지원하는 Grafana 워크스페이스는 섹션을 참조하세요[Grafana 버전 12에서 작업](using-grafana-v12.md).  
Grafana 버전 10.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 10에서 작업](using-grafana-v10.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

패널 제목과 지표 쿼리는 두 가지 다른 구문을 사용하여 변수를 참조할 수 있습니다.
+ `$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**

다중 값 변수를 Graphite 쿼리에 대한 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 - 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'
```

**원시**

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)'
```

**Singlequote**

단일 및 다중 값 변수를 쉼표로 구분된 문자열 형식으로 지정하고, 각 값에서 `'`를 `\'`로 이스케이프 처리하고 각 값을 `'`로 묶습니다.

```
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"
```