

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

# 쿼리 및 조건
<a name="v10-alerting-explore-rules-queries"></a>

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

Grafana에서 쿼리는 MySQL 및 PostgreSQL과 같은 데이터베이스, Prometheus, InfluxDB 및 Graphite와 같은 시계열 데이터베이스, OpenSearch, Amazon CloudWatch, Azure Monitor 및 Google Cloud Monitoring과 같은 서비스를 포함하는 지원되는 데이터 소스에서 데이터를 가져오고 변환하는 데 중요한 역할을 합니다.

지원되는 데이터 소스에 대한 자세한 내용은 [데이터 소스 및 Grafana 알림](v10-alerting-overview-datasources.md) 섹션을 참조하세요.

쿼리를 실행하는 프로세스에는 데이터 소스 정의, 검색할 원하는 데이터 지정, 관련 필터 또는 변환 적용이 포함됩니다. 선택한 데이터 소스와 관련된 쿼리 언어 또는 구문은 이러한 쿼리를 작성하는 데 사용됩니다.

알림에서 측정하려는 데이터와 알림 규칙이 실행되기 전에 충족해야 하는 조건을 가져오도록 쿼리를 정의합니다.

알림 규칙은 측정하려는 데이터를 선택하는 하나 이상의 쿼리 및 표현식으로 구성됩니다.

쿼리 및 표현식에 대한 자세한 내용은 [데이터 쿼리 및 변환](v10-panels-query-xform.md) 섹션을 참조하세요.

## 데이터 소스 할당량
<a name="v10-alerting-explore-rules-queries-data-source-queries"></a>

Grafana의 쿼리는 사용 중인 데이터 소스 및 쿼리 언어에 따라 다양한 방식으로 적용될 수 있습니다. 각 데이터 소스의 쿼리 편집기는 고유한 기능을 활용하는 쿼리를 작성하는 데 도움이 되는 사용자 지정 사용자 인터페이스를 제공합니다.

쿼리 언어 간의 차이로 인해 각 데이터 소스 쿼리 편집기는 모양과 기능이 다릅니다. 데이터 소스에 따라 쿼리 편집기는 자동 완성 기능, 지표 이름, 변수 제안 또는 시각적 쿼리 빌드 인터페이스를 제공할 수 있습니다.

몇 가지 일반적인 유형의 쿼리 구성 요소는 다음과 같습니다.

**지표 또는 데이터 필드** - CPU 사용량, 네트워크 트래픽 또는 센서 수치와 같이 검색하려는 특정 지표 또는 데이터 필드를 지정합니다.

**시간 범위** - 지난 시간, 특정 날짜 또는 사용자 지정 시간 범위와 같이 데이터를 가져올 시간 범위를 정의합니다.

**필터** - 필터를 적용하여 특정 태그, 호스트 또는 애플리케이션별로 데이터를 필터링하는 등 특정 기준에 따라 데이터 범위를 좁힙니다.

**집계** - 데이터에 대한 집계를 수행하여 지정된 기간의 평균, 합계 또는 개수와 같은 지표를 계산합니다.

**그룹화** - 데이터를 특정 차원 또는 태그별로 그룹화하여 집계된 보기 또는 분석을 생성합니다.

**참고**  
Grafana에서는 템플릿 변수가 있는 알림 쿼리를 지원하지 않습니다. 자세한 내용은 Grafana Labs 포럼의 [여기](https://community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514)에서 확인할 수 있습니다.

## 표현식 쿼리
<a name="v10-alerting-explore-rules-queries-expression-queries"></a>

Grafana에서 표현식은 데이터 소스의 쿼리된 데이터에 대한 계산, 변환 또는 집계를 수행하는 데 사용됩니다. 이를 통해 사용자 지정 지표를 생성하거나 수학적 연산, 함수 또는 논리적 표현식을 기반으로 기존 지표를 수정할 수 있습니다.

표현식 쿼리를 활용하여 사용자는 두 값 간의 백분율 변화 계산, 로그 또는 삼각 함수와 같은 함수 적용, 특정 시간 범위 또는 차원에 걸쳐 데이터 집계, 다양한 시나리오를 처리하기 위한 조건부 로직 구현과 같은 태스크를 수행할 수 있습니다.

알림에서는 Grafana 관리형 알림 규칙에 대한 표현식만 사용할 수 있습니다. 각 표현식에 대해 수학, 축소 및 리샘플링 표현식 중에서 선택할 수 있습니다. 이를 다차원 규칙이라고 합니다. 각 시리즈에 대해 별도의 알림을 생성하기 때문입니다.

또한 클래식 조건을 사용할 수 있습니다. 이 조건이 충족되면 단일 알림을 트리거하는 알림 규칙을 생성합니다. 따라서 Grafana는 여러 시리즈에 대한 알림 조건이 충족되더라도 단일 알림만 전송합니다.

**참고**  
클래식 조건은 주로 호환성을 위해 존재하므로 가능하면 피해야 합니다.

**축소**

선택한 시간 범위의 시계열 값을 단일 값으로 집계합니다.

**수학 연산**

시계열 및 숫자 데이터에 대해 자유 형식 수학 함수/연산을 수행합니다. 시계열 데이터를 사전 처리하거나 숫자 데이터에 대한 알림 조건을 정의하는 데 사용할 수 있습니다.

**리샘플링**

시간 범위를 새 타임스탬프 세트로 재정렬합니다. 서로 다른 데이터 소스의 시계열 데이터를 비교할 때 유용합니다. 그렇지 않으면 여기에서 타임스탬프가 정렬되지 않습니다.

**Threshold**

시계열 데이터가 임계치 조건과 일치하는지 확인합니다.

임계치 표현식을 사용하면 두 개의 단일 값을 비교할 수 있습니다. 조건이 false인 경우 `0`, 조건이 true인 경우 `1`을 반환합니다. 이제 다음과 같은 임계치 함수를 사용할 수 있습니다.
+ 초과(x > y)
+ 미만(x < y)
+ 범위 내(x > y1 AND x < y2)
+ 범위를 벗어남(x < y1 AND x > y2)

**클래식 조건**

시계열 데이터가 알림 조건과 일치하는지 확인합니다.

**참고**  
클래식 조건 표현식 쿼리는 조건을 충족하는 시계열 수에 관계없이 항상 하나의 알림 인스턴스만 생성합니다. 클래식 조건은 주로 호환성을 위해 존재하므로 가능하면 피해야 합니다.

## 집계
<a name="v10-alerting-explore-rules-queries-aggregations"></a>

Grafana 알림은 쿼리를 추가로 세분화할 수 있도록 다음과 같은 집계 함수를 제공합니다.

이러한 함수는 **축소** 및 **클래식 조건** 표현식에만 사용할 수 있습니다.


| 함수 | 표현식 | 하는 일 | 
| --- | --- | --- | 
| avg | 축소/클래식 | 값의 평균 표시 | 
| min | 축소/클래식 | 가장 낮은 값 표시 | 
| 최대 | 축소/클래식 | 가장 높은 값 표시 | 
| sum | 축소/클래식 | 모든 값의 합계 표시 | 
| count | 축소/클래식 | 결과에 있는 값 수 계산 | 
| last | 축소/클래식 | 마지막 값 표시 | 
| median | 축소/클래식 | 중앙값 표시 | 
| DIFF | 클래식 | 최신 값과 가장 오래된 값의 차이 표시 | 
| diff\_abs | 클래식 | 차이의 절댓값 표시 | 
| percent\_diff | 클래식 | 최신 값과 가장 오래된 값 간의 차이 백분율 값 표시 | 
| percent\_diff\_abs | 클래식 | percent\_diff의 절댓값 표시 | 
| count\_non\_null | 클래식 | 결과 세트에서 null이 아닌 값의 수 표시 | 

## 알림 조건
<a name="v10-alerting-explore-rules-queries-alert-condition"></a>

알림 조건은 알림이 생성되는 값에 따라 알림 실행 여부를 결정하는 쿼리 또는 표현식입니다. 알림 트리거를 결정하는 조건이 하나뿐일 수 있습니다.

쿼리 및/또는 표현식을 정의한 후 그 중 하나를 알림 규칙 조건으로 선택합니다.

쿼리된 데이터가 정의된 조건을 충족하면 Grafana는 이메일, Slack 또는 PagerDuty와 같은 다양한 채널을 통해 알림을 보내도록 구성할 수 있는 관련 알림을 트리거합니다. 알림은 충족되는 조건을 알려주므로 적절한 조치를 취하거나 근본적인 문제를 조사할 수 있습니다.

기본적으로 마지막으로 추가된 표현식은 알림 조건으로 사용됩니다.

## 복구 임계치
<a name="v10-alerting-explore-rules-queries-recovery-threshold"></a>

플래핑 알림의 소음을 줄이기 위해 알림 임계치와 다르게 복구 임계치를 설정할 수 있습니다.

플래핑 알림은 지표가 알림 임계치 조건 근처이고 빈번한 상태 변경으로 인해 너무 많은 알림이 생성될 수 있을 때 발생합니다.

Grafana 관리형 알림 규칙은 특정 시간 간격 동안 평가됩니다. 각 평가 중에 쿼리의 결과를 알림 규칙에 설정된 임계치와 비교하여 확인합니다. 지표 값이 임계치를 초과하면 알림 규칙이 실행되고 알림이 전송됩니다. 값이 임계치보다 낮고 이 지표에 대한 활성 알림이 있으면 알림이 해결되고 다른 알림이 전송됩니다.

노이즈 지표에 대한 알림 규칙을 생성하는 작업은 까다로울 수 있습니다. 즉, 지표의 값이 임계치를 계속 초과하거나 미만인 경우가 이에 해당합니다. 이를 플래핑이라고 하며 일련의 실행 중 - 해결됨 - 실행 중 알림 및 노이즈 알림 상태 기록이 생성됩니다.

예를 들어, 임계치가 1,000밀리초인 지연 시간에 대한 알림이 있고 숫자가 약 1,000 사이에서 변동하는 경우(예: 980 -> 1,010 -> 990 -> 1,020 등) 각각 알림이 트리거됩니다.

이 문제를 해결하기 위해 (사용자 지정) 복구 임계치를 설정할 수 있습니다. 즉, 기본적으로 임계치가 하나가 아니라 두 개입니다. 첫 번째 임계치를 초과하면 알림이 트리거되고 두 번째 임계치를 초과한 경우에만 해결됩니다.

예를 들어 임계치를 1,000밀리초로 설정하고 복구 임계치를 900밀리초로 설정할 수 있습니다. 이렇게 하면 알림 규칙이 900밀리초 미만이 되고 플래핑이 감소할 때만 실행이 중지됩니다.