

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

# 변환
<a name="panel-transformations"></a>

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

시각화로 전달하기 전에 변환으로 결과 세트를 처리합니다. Amazon Managed Grafana 패널 편집기의 **변환** 탭에서 변환에 액세스합니다.

변환을 사용하여 필드 이름을 바꾸고, 별도의 시계열을 조인하며, 쿼리 간에 수학을 수행하는 등의 작업을 수행할 수 있습니다. 대시보드가 크거나 쿼리가 많은 경우 한 패널에서 다른 패널로 쿼리 결과를 재사용할 수 있으면 성능이 크게 향상될 수 있습니다.

**참고**  
변환에서는 그래프로 표시할 수 없는 데이터가 발생하기도 합니다. 이 경우 Amazon Managed Grafana에서는 시각화에 제안을 표시합니다. 테이블 시각화로 전환할 제안을 선택합니다. 그러면 변환이 데이터에 어떤 영향을 미치는지 더 잘 이해하는 데 도움이 됩니다.

Amazon Managed Grafana에서는 화면에 나열된 순서대로 변환을 적용합니다. 모든 변환은 파이프라인의 다음 변환으로 전달되는 새 결과 세트를 생성합니다.

이 순서에 따라 결과 표시가 크게 달라질 수 있습니다. 예를 들어 축소 변환을 사용하여 한 열의 모든 결과를 단일 값으로 압축하는 경우 해당 단일 값에만 변환을 적용할 수 있습니다.

**사전 조건**

변환을 적용하기 전에 다음 사항을 모두 충족해야 합니다.
+ 쿼리를 입력하고 데이터 소스에서 데이터를 반환했습니다. 쿼리에 대한 자세한 내용은 [쿼리](panel-queries.md) 섹션을 참조하세요.
+ 다음 시각화 중 하나와 같이 쿼리를 지원하는 시각화를 적용했습니다.
  + 막대 게이지
  + Gauge
  + 그래프
  + 히트맵
  + 로그
  + Stat
  + 표

## 변환 적용
<a name="apply-a-transformation"></a>

 변환은 **쿼리** 탭 옆의 패널 편집기 하단 창의 **변환** 탭에서 사용할 수 있습니다.

**변환을 적용하는 방법**

1.  변환을 추가하려는 패널에서 패널 제목을 선택하고 **편집**을 선택하세요.

1.  [**변환(Transform)**] 탭을 선택합니다.

1.  변환을 선택하세요.

    표시되는 변환 행에서 변환 옵션을 구성할 수 있습니다.

1.  다른 변환을 적용하려면 **변환 추가**를 선택하세요. 다음 변환은 이전 변환에서 반환된 결과 세트에 따라 작동한다는 점에 유의하세요.

 문제가 있는 경우 버그 아이콘을 선택하여 [변환을 디버깅](#debug-transformations)합니다.

 변환을 제거하려면 휴지통 아이콘을 선택하세요.

## 변환 유형 및 옵션
<a name="transformation-types-and-options"></a>

 Grafana 워크스페이스에는 다음과 같은 변환이 포함됩니다.

**Topics**
+ [축소](#reduce)
+ [병합](#merge)
+ [이름별 필터링](#filter-by-name)
+ [쿼리를 기준으로 데이터 필터링](#filter-data-by-query)
+ [필드 구성](#organize-fields)
+ [필드별 조인(외부 조인)](#join-by-field-outer-join)
+ [계산에서 필드 추가](#add-field-from-calculation)
+ [레이블에서 필드로](#labels-to-fields)
+ [그룹화 기준](#sort-by)
+ [그룹화 기준](#group-by)
+ [시리즈에서 행으로](#series-to-rows)
+ [값을 기준으로 데이터 필터링](#filter-data-by-value)
+ [디버그 변환](#debug-transformations)

### 축소
<a name="reduce"></a>

 결과를 한 값으로 단순화하려는 경우 **축소** 변환을 적용합니다. 축소는 기본적으로 시간 구성 요소를 제거합니다. 테이블로 시각화되면 열을 하나의 행(값)으로 줄입니다.

 **계산** 필드에 하나 이상의 계산 유형을 입력하세요. 계산 선택 목록을 보려는 경우에 선택합니다. 사용할 수 있는 계산에 대한 자세한 내용은 [계산 목록](list-of-calculations.md) 섹션을 참조하세요.

하나 이상의 계산을 선택하면 Amazon Managed Grafana에서 선택한 계산을 사용하여 하나의 값을 표시합니다. 둘 이상의 계산을 선택하면 둘 이상의 값이 표시됩니다.

### 병합
<a name="merge"></a>

 이 변환을 사용하여 여러 쿼리의 결과를 단일 결과로 결합합니다. 이 방식은 테이블 패널 시각화를 사용할 때 유용합니다. 병합할 수 있는 값은 동일한 행에 결합됩니다. 공유 필드에 동일한 데이터가 포함된 경우 값을 병합할 수 있습니다.

 다음 예제에서는 두 쿼리에서 테이블 데이터를 반환합니다. 변환을 적용하기 전에 데이터는 두 개의 개별 테이블로 시각화됩니다.

쿼리 A


|  Time  |  작업  |  가동 시간  | 
| --- | --- | --- | 
|  2020-07-07 11:34:20  |  노드  |  25260122  | 
|  2020-07-07 11:24:20  |  postgre  |  123001233  | 

쿼리 B


|  Time  |  작업  |  오류  | 
| --- | --- | --- | 
|  2020-07-07 11:34:20  |  노드  |  15  | 
|  2020-07-07 11:24:20  |  postgre  |  5  | 

 다음은 **병합** 변환을 적용한 후 결과입니다.


|  Time  |  작업  |  오류  |  가동 시간  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  노드  |  15  |  25260122  | 
|  2020-07-07 11:24:20  |  postgre  |  5  |  123001233  | 

### 이름별 필터링
<a name="filter-by-name"></a>

 이 변환을 사용하여 쿼리 결과의 일부를 제거합니다.

 Amazon Managed Grafana에서는 **식별자** 필드와 이 다음에 다음 쿼리에서 반환된 필드를 표시합니다.

 다음 두 가지 방법 중 하나로 필터를 적용할 수 있습니다.
+  정규식을 입력합니다.
+  필드를 선택하여 해당 필드에서 필터링을 전환합니다. 필터링된 필드는 어두운 회색 텍스트로 표시되고 필터링되지 않은 필드는 흰색 텍스트로 표시됩니다.

### 쿼리를 기준으로 데이터 필터링
<a name="filter-data-by-query"></a>

 하나 이상의 쿼리를 숨기려면 여러 쿼리가 있는 패널에서 이 변환을 사용합니다.

 Amazon Managed Grafana에서는 쿼리 식별 문자를 어두운 회색 텍스트로 표시합니다. 필터링을 전환하려면 쿼리 식별자를 선택합니다. 쿼리 문자가 흰색이면 결과가 표시됩니다. 쿼리 문자가 어두운 색이면 결과가 숨겨집니다.

### 필드 구성
<a name="organize-fields"></a>

 이 변환을 사용하여 쿼리에서 반환된 필드의 이름을 바꾸거나, 순서를 바꾸거나, 숨깁니다.

**참고**  
 이 변환은 단일 쿼리가 있는 패널에서만 작동합니다. 패널에 여러 쿼리가 있는 경우 **필드 단위 조인(외부 조인)** 변환을 적용하거나 추가 쿼리를 제거해야 합니다.

 Amazon Managed Grafana에서는 쿼리에서 반환된 필드 목록을 표시합니다. 다음과 같이 변경할 수 있습니다.
+  필드에서 일시 중지하여 필드 순서를 변경합니다. 커서가 손 모양으로 바뀌면 필드를 새 위치로 끌 수 있습니다.
+  필드 이름 옆에 있는 눈 아이콘을 선택하여 필드를 숨기거나 표시합니다.
+  **이름 바꾸기** 상자에 새 이름을 입력하여 필드의 이름을 바꿉니다.

### 필드별 조인(외부 조인)
<a name="join-by-field-outer-join"></a>

 이 변환을 사용하여 필드별 결과 세트에서 여러 시계열을 조인합니다.

 이 변환은 필드의 결과를 계산할 수 있도록 쿼리를 결합하려는 경우에 유용합니다.

### 계산에서 필드 추가
<a name="add-field-from-calculation"></a>

 이 변환을 사용하여 두 개의 다른 필드에서 계산된 새 필드를 추가합니다. 각 변환을 통해 하나의 새 필드를 추가할 수 있습니다.
+  **모드** - 모드를 선택합니다.
  +  **행 축소** - 선택한 필드의 각 행에서 선택한 계산을 독립적으로 적용합니다.
  +  **바이너리 옵션** - 선택한 두 필드의 단일 행 값에 기본 수학 작업(`sum`, `multiply` 등)을 적용합니다.
+  **필드 이름** - 새 필드의 계산에 사용할 필드 이름을 선택합니다.
+  **계산** - Amazon Managed Grafana가 새 필드를 생성할 때 사용할 계산을 선택합니다. 필드를 선택하면 계산 선택 목록이 표시됩니다. 사용할 수 있는 계산에 대한 자세한 내용은 [계산 목록](list-of-calculations.md) 섹션을 참조하세요.
+  **별칭** – (선택 사항) 새 필드의 이름을 입력합니다. 이 항목을 비워 두면 계산과 일치하도록 필드 이름이 지정됩니다.
+  **모든 필드 바꾸기** - (선택 사항) 다른 모든 필드를 숨기고 시각화에 계산된 필드만 표시하려면 이 옵션을 사용합니다.

### 레이블에서 필드로
<a name="labels-to-fields"></a>

**참고**  
 이 변환을 적용하려면 쿼리에서 레이블이 지정된 필드를 반환해야 합니다.

 이 변환을 선택하면 Amazon Managed Grafana에서 레이블이 지정된 모든 데이터를 필드로 자동 변환합니다.

 예를 들어, 두 시계열의 쿼리 결과를 고려합니다.

 1: labels Server=Server A, Datacenter=EU 2: labels Server=Server B, Datacenter=EU 

 이 변환에서는 다음 테이블이 생성됩니다.


|  Time  |  Server  |  데이터 센터  |  값  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  Server A  |  EU  |  1  | 
|  2020-07-07 11:34:20  |  Server B  |  EU  |  2  | 

 **값 필드 이름**: **값 필드 이름**으로 `Server`를 선택한 경우 `Server` 레이블의 모든 값에 대해 하나의 필드를 가져옵니다.


|  Time  |  데이터 센터  |  Server A  |  Server B  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  EU  |  1  |  2  | 

### 그룹화 기준
<a name="sort-by"></a>

이 변환은 구성된 필드별로 각 프레임을 정렬합니다. `reverse`를 선택하면 값이 반대 순서로 반환됩니다.

### 그룹화 기준
<a name="group-by"></a>

 이 변환은 지정된 필드(열) 값을 기준으로 데이터를 그룹화하고 각 그룹에 대한 계산을 처리합니다. 사용 가능한 계산은 축소 변환과 동일합니다.

 다음은 원본 데이터 예제입니다.


|  Time  |  서버 ID  |  CPU 온도  |  서버 상태  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  server 1  |  80  |  Shutdown  | 
|  2020-07-07 11:34:20  |  server 3  |  62  |  정상  | 
|  2020-07-07 10:32:20  |  server 2  |  90  |  Overload  | 
|  2020-07-07 10:31:22  |  server 3  |  55  |  정상  | 
|  2020-07-07 09:30:57  |  server 3  |  62  |  Rebooting  | 
|  2020-07-07 09:30:05  |  server 2  |  88  |  정상  | 
|  2020-07-07 09:28:06  |  server 1  |  80  |  정상  | 
|  2020-07-07 09:25:05  |  server 2  |  88  |  정상  | 
|  2020-07-07 09:23:07  |  server 1  |  86  |  정상  | 

 이 변환은 두 단계로 구성됩니다. 먼저 데이터를 그룹화할 기준이 되는 하나 이상의 필드를 지정합니다. 그러면 정렬한 것처럼 해당 필드의 모든 동일한 값이 함께 그룹화됩니다. 예를 들어 `Server ID` 필드에 **그룹화 기준**을 적용하면 다음과 같이 데이터를 그룹화합니다.


|  Time  |  서버 ID  |  CPU 온도  |  서버 상태  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  server 1  |  80  |  Shutdown  | 
|  2020-07-07 09:28:06  |  server 1  |  80  |  정상  | 
|  2020-07-07 09:23:07  |  server 1  |  86  |  정상  | 

```
2020-07-07 10:32:20 | server 2 | 90 | Overload
2020-07-07 09:30:05 | server 2 | 88 | OK
2020-07-07 09:25:05 | server 2 | 88 | OK

2020-07-07 11:34:20 | server 3 | 62 | OK
2020-07-07 10:31:22 | server 3 | 55 | OK
2020-07-07 09:30:57 | server 3 | 62 | Rebooting
```

`Server ID`의 동일한 값을 가진 모든 행이 함께 그룹화됩니다.

데이터를 그룹화할 기준이 되는 필드를 선택한 후 다른 필드에 다양한 계산을 추가할 수 있으며 계산은 각 행 그룹에 적용됩니다. 예를 들어 이러한 각 서버에 대한 평균 `CPU temperature`를 계산할 수 있습니다. `CPU Temperature` 필드에 적용된 *평균* 계산을 추가하여 다음을 가져올 수 있습니다.


|  서버 ID  |  CPU 온도(평균)  | 
| --- | --- | 
|  server 1  |  82  | 
|  server 2  |  88.6  | 
|  server 3  |  59.6  | 

그리고 이러한 계산 중 둘 이상을 추가할 수 있습니다. 예를 들어 다음 계산을 사용할 수 있습니다.
+  `Time` 필드의 경우 *마지막* 값을 계산하여 각 서버에 대해 마지막 데이터 포인트가 수신된 시점을 알 수 있습니다.
+  `Server Status` 필드의 경우 *마지막* 값을 계산하여 각 서버에 대한 마지막 상태 값을 알 수 있습니다.
+  `Temperature` 필드의 경우 *마지막* 값을 계산하여 각 서버에 대해 모니터링된 최신 온도를 알 수 있습니다.

 그룹화 기준 변환에서는 다음 결과를 생성합니다.


|  서버 ID  |  CPU 온도(평균)  |  CPU 온도(마지막)  |  시간(마지막)  |  서버 상태(마지막)  | 
| --- | --- | --- | --- | --- | 
|  server 1  |  82  |  80  |  2020-07-07 11:34:20  |  Shutdown  | 
|  server 2  |  88.6  |  90  |  2020-07-07 10:32:20  |  Overload  | 
|  server 3  |  59.6  |  62  |  2020-07-07 11:34:20  |  정상  | 

이 변환을 사용하면 시계열에서 몇 가지 주요 정보를 추출하여 편리한 방식으로 표시할 수 있습니다.

### 시리즈에서 행으로
<a name="series-to-rows"></a>

이 변환을 사용하여 여러 시계열 데이터 쿼리의 결과를 단일 결과로 결합합니다. 이 방식은 테이블 패널 시각화를 사용할 때 유용합니다.

이 변환의 결과에는 `Time`, `Metric` 및 `Value`와 같은 세 가지 열이 포함됩니다. 지표가 생성된 쿼리를 확인할 수 있도록 `Metric` 열이 추가됩니다. 소스 쿼리에서 `Label`을 정의하여 이 값을 사용자 지정합니다.

아래 예제에서는 두 쿼리에서 시계열 데이터를 반환합니다. 변환을 적용하기 전에 두 개의 개별 테이블로 시각화됩니다.

 쿼리 A 


|  Time  |  Temperature  | 
| --- | --- | 
|  2020-07-07 11:34:20  |  25  | 
|  2020-07-07 10:31:22  |  22  | 
|  2020-07-07 09:30:05  |  19  | 

 쿼리 B 


|  Time  |  습도  | 
| --- | --- | 
|  2020-07-07 11:34:20  |  24  | 
|  2020-07-07 10:32:20  |  29  | 
|  2020-07-07 09:30:57  |  33  | 

 `Series to rows` 변환을 적용하면 다음과 같은 결과가 생성됩니다.


|  Time  |  지표  |  값  | 
| --- | --- | --- | 
|  2020-07-07 11:34:20  |  Temperature  |  25  | 
|  2020-07-07 11:34:20  |  습도  |  22  | 
|  2020-07-07 10:32:20  |  습도  |  29  | 
|  2020-07-07 10:31:22  |  Temperature  |  22  | 
|  2020-07-07 09:30:57  |  습도  |  33  | 
|  2020-07-07 09:30:05  |  Temperature  |  19  | 

### 값을 기준으로 데이터 필터링
<a name="filter-data-by-value"></a>

이 변환을 통해 Grafana 워크스페이스에서 직접 데이터를 필터링하고 쿼리 결과에서 일부 데이터 포인트를 제거할 수 있습니다. 정의한 하나 이상의 조건과 일치하는 데이터를 포함하거나 제외할 수 있습니다. 조건은 선택한 필드에 적용됩니다.

이 변환은 기본적으로 값을 기준으로 데이터 소스를 필터링하지 않는 경우에 유용합니다. 공유 쿼리를 사용하는 경우 이 변환을 사용하여 값을 좁혀 표시할 수도 있습니다.

 모든 필드에 대해 사용할 수 있는 조건은 다음과 같습니다.
+  **정규식** - 정규식과 일치합니다.
+  **Null임** - 값이 null인 경우 일치합니다.
+  **Null이 아님** - 값이 null이 아닌 경우 일치합니다.
+  **같음** - 값이 지정된 값과 같은 경우 일치합니다.
+  **다름** - 값이 지정된 값과 다른 경우 일치합니다.

숫자 필드에 대해 사용할 수 있는 조건은 다음과 같습니다.
+  **초과** - 값이 지정된 값보다 큰 경우 일치합니다.
+  **미만** - 값이 지정된 값보다 작은 경우 일치합니다.
+  **이상** - 값이 지정된 값 이상인 경우 일치합니다.
+  **이하** - 값이 지정된 값 이하인 경우 일치합니다.
+  **범위** - 지정된 최솟값과 최댓값 사이의 범위를 일치시킵니다. 최솟값과 최댓값은 범위에 포함됩니다.

필터에 둘 이상의 조건을 추가할 수 있습니다. 조건이 둘 이상인 경우 모든 조건 또는 추가한 조건과 일치하는 행에 포함 또는 제외 작업을 적용할지 여부를 선택할 수 있습니다.

유효하지 않거나 불완전하게 구성된 조건은 무시됩니다.

### 디버그 변환
<a name="debug-transformations"></a>

변환의 입력 및 출력 결과 세트를 보려면 변환 행 오른쪽에 있는 버그 아이콘을 선택합니다.

 Amazon Managed Grafana에서는 변환 행 아래에 디버그 변환 보기를 표시합니다.