

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

# Grafana 버전 9에서의 알림
<a name="v9-alerts"></a>

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

Grafana 알림은 시스템 문제가 발생한 후 바로 문제를 파악하여 서비스 중단을 최소화하는 데 도움이 되는 강력하고 실행 가능한 알림을 제공합니다.

Amazon Managed Grafana에는 검색 가능한 단일 보기에서 알림 정보를 중앙 집중화하는 업데이트된 알림 시스템인 *Grafana 알림*에 대한 액세스가 포함되어 있습니다. 다음 기능이 포함되어 있습니다.
+ 중앙 집중식 보기에서 Grafana 알림을 생성하고 관리합니다.
+ 단일 인터페이스를 통해 Cortex 및 Loki 관리형 알림을 생성하고 관리합니다.
+ Prometheus, Amazon Managed Service for Prometheus 및 기타 Alertmanager 호환 데이터 소스의 알림 정보를 확인합니다.

Amazon Managed Grafana 워크스페이스를 생성할 때 Grafana 알림 또는 [클래식 대시보드 알림](old-alerts-overview.md)을 사용할 수 있습니다. 이 섹션에서는 Grafana 알림을 다룹니다.

**참고**  
클래식 알림이 활성화된 워크스페이스를 생성하고 Grafana 알림으로 전환하려는 경우 [두 알림 시스템 사이를 전환](v9-alerting-use-grafana-alerts.md)할 수 있습니다.

## Grafana 알림 제한 사항
<a name="v9-alert-limitations"></a>
+ Grafana 알림 시스템은 사용 가능한 모든 Amazon Managed Service for Prometheus, Prometheus, Loki 및 Alertmanager 데이터 소스에서 규칙을 검색할 수 있습니다. 지원되는 다른 데이터 소스에서 규칙을 가져오지 못할 수 있습니다.
+ Prometheus가 아닌 Grafana에 정의된 알림 규칙에서 여러 알림을 연락 지점으로 전송합니다. 기본 Grafana 알림을 사용하는 경우 클래식 대시보드 알림을 유지하고 새 Grafana 알림 기능을 활성화하지 않는 것이 좋습니다. Prometheus 데이터 소스에 정의된 알림을 보려면 Grafana 알림을 활성화하는 것이 좋습니다. Grafana 알림은 Prometheus Alertmanager에서 생성된 알림에 대해 단일 알림만 전송합니다.
**참고**  
이 제한 사항은 Grafana v10.4 이상을 지원하는 Amazon Managed Grafana 워크스페이스에서 적용되지 않습니다.

**Topics**
+ [Grafana 알림 제한 사항](#v9-alert-limitations)
+ [개요](v9-alerting-overview.md)
+ [알림 탐색](v9-alerting-explore.md)
+ [알림 설정](v9-alerting-setup.md)
+ [Grafana 알림으로 클래식 대시보드 알림 마이그레이션](v9-alerting-use-grafana-alerts.md)
+ [알림 규칙 관리](v9-alerting-managerules.md)
+ [알림 전달 관리](v9-alerting-managenotifications.md)

# 개요
<a name="v9-alerting-overview"></a>

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

다음은 Grafana 알림의 작동 방식에 대한 개요를 제공하고 유연하고 강력한 알림 엔진의 핵심을 구성하고 이와 함께 작동하는 몇 가지 주요 개념을 소개합니다.

1. **데이터 원본**

   알림에 사용할 데이터에 연결합니다. 이 데이터는 종종 알림에 대한 시계열 데이터이며 모니터링 및 분석할 시스템의 세부 정보를 보여줍니다. 자세한 내용은 [데이터 소스](AMG-data-sources-builtin.md)를 참조하세요.

1. **알림 규칙**

   알림 실행 여부를 결정하는 평가 기준를 설정합니다. 알림 규칙은 데이터 소스에서 데이터를 가져오기 위한 하나 이상의 쿼리 및 표현식, 알림의 필요성, 평가 빈도 및 선택적으로 알림 실행을 위해 조건을 충족해야 하는 기간을 설명하는 조건으로 구성됩니다.

   Grafana 관리형 알림은 다차원 알림을 지원하므로 각 알림 규칙이 여러 알림 인스턴스를 생성할 수 있습니다. 이는 단일 표현식에서 여러 시리즈를 관찰하는 경우 매우 유용합니다.

1. **레이블**

   알림 규칙 및 해당 인스턴스를 알림 정책 및 무음과 일치시킵니다. 또한 심각도별로 알림을 그룹화하는 데 사용할 수 있습니다.

1. **알림 정책**

   알림이 실행될 때 팀에 알리기 위해 알림이 라우팅되는 위치, 시간 및 방법을 설정합니다. 각 알림 정책은 담당하고 있는 알림을 나타내는 레이블 매처 세트를 지정합니다. 알림 정책에는 하나 이상의 알림으로 구성된 연락 지점에 할당되어 있습니다.

1. **연락 지점**

   알림 규칙이 실행될 때 연락처에 알림을 보내는 방법을 정의합니다. 팀에 알림을 보낼 수 있도록 다양한 ChatOps 도구가 지원됩니다.

## 특성
<a name="v9-alerting-features"></a>

**모든 알림에 대해 한 페이지 지원**

단일 Grafana 알림 페이지는 Grafana 관리형 알림과 Prometheus 호환 데이터 소스에 있는 알림을 모두 한 곳에 통합합니다.

**다차원 알림**

알림 규칙은 다차원 알림이라고 하는 알림 규칙당 여러 개의 개별 알림 인스턴스를 생성할 수 있으므로 단일 알림으로 전체 시스템에 대한 가시성을 확보할 수 있는 기능과 유연성을 제공합니다.

**알림 라우팅**

정의한 레이블에 따라 각 알림 인스턴스를 특정 연락 지점으로 라우팅합니다. 알림 정책은 알림이 연락 지점으로 라우팅되는 위치, 시간 및 방법에 대한 규칙 세트입니다.

**알림 무음**

무음을 사용하면 하나 이상의 알림 규칙에서 영구 알림 수신을 중지할 수 있습니다. 특정 기준에 따라 알림을 부분적으로 일시 중지할 수도 있습니다. 무음에는 조직 및 가시성을 높이기 위한 전용 섹션이 있으므로 기본 알림 보기를 어수선하게 하지 않고도 일시 중지된 알림 규칙을 스캔할 수 있습니다.

**음소거 타이밍**

음소거 타이밍을 사용하면 새 알림을 생성하거나 전송하지 않으려는 시간 간격을 지정할 수 있습니다. 또한 유지 관리 기간과 같이 반복 기간에 알림 전달을 동결할 수 있습니다.

# 알림 탐색
<a name="v9-alerting-explore"></a>

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

Grafana 알림 구현을 시작하거나 확장하는 경우 모두 알림을 생성, 관리 및 실행하고 문제를 신속하게 해결하는 팀의 역량을 개선하는 데 도움이 되는 주요 개념과 사용 가능한 기능을 자세히 알아봅니다.

먼저 Grafana 알림에서 제공하는 다양한 알림 규칙 유형을 살펴봅니다.

## 알림 규칙 유형
<a name="v9-alerting-explore-rule-types"></a>

**Grafana 관리형 규칙**

Grafana 관리형 규칙은 가장 유연한 알림 규칙 유형입니다. 이를 통해 지원되는 데이터 소스의 데이터에 대해 작업을 취할 수 있는 알림을 생성할 수 있습니다. 여러 데이터 소스를 지원하는 것 외에도 표현식을 추가하여 데이터를 변환하고 알림 조건을 설정할 수도 있습니다. 단일 규칙 정의에서 여러 데이터 소스의 알림을 허용하는 유일한 유형의 규칙입니다.

**Mimir 및 Loki 규칙**

Mimir 또는 Loki 알림을 생성하려면 호환되는 Prometheus 또는 Loki 데이터 소스가 있어야 합니다. 데이터 소스를 테스트하고 눈금자 API가 지원되는지 관찰하여 데이터 소스가 Grafana를 통한 규칙 생성을 지원하는지 확인할 수 있습니다.

**기록 규칙**

기록 규칙은 호환되는 Prometheus 또는 Loki 데이터 소스에만 사용할 수 있습니다. 기록 규칙을 사용하면 자주 필요하거나 계산 비용이 많이 드는 표현식을 미리 계산하고, 해당 결과를 새로운 시계열 세트로 저장할 수 있습니다. 집계된 데이터에 대해 알림을 실행하거나 계산 비용이 많이 드는 표현식을 반복적으로 쿼리하는 대시보드가 있는 경우에 유용합니다.

## 주요 개념 및 기능
<a name="v9-alerting-explore-features"></a>

다음 표에는 Grafana 알림을 최대한 활용하는 데 도움이 되도록 설계된 주요 개념, 기능 및 정의 목록이 포함되어 있습니다.


| 주요 개념 또는 기능 | 정의 | 
| --- | --- | 
|  알림에 대한 데이터 소스  |  지표, 로그 및 추적을 쿼리하고 시각화할 데이터 소스를 선택합니다.  | 
|  알림에 대한 프로비저닝  |  알림 리소스를 관리하고 파일 프로비저닝 또는 Terraform을 사용하여 Grafana 시스템으로 프로비저닝합니다.  | 
|  Alertmanager  |  알림 인스턴스의 라우팅 및 그룹화를 관리합니다.  | 
|  알림 규칙  |  알림 규칙을 실행해야 하는 시점에 대한 평가 기준 세트. 알림 규칙은 하나 이상의 쿼리와 표현식, 조건, 평가 빈도 및 조건이 충족되는 기간으로 구성됩니다. 알림 규칙은 여러 개의 알림 인스턴스를 생성할 수 있습니다.  | 
|  알림 인스턴스  |  알림 인스턴스는 알림 규칙의 인스턴스입니다. 단일 차원 알림 규칙에는 하나의 알림 인스턴스가 있습니다. 다차원 알림 규칙에는 하나 이상의 알림 인스턴스가 있습니다. 10개 VM의 CPU와 같이 여러 결과와 일치하는 단일 알림 규칙은 여러 알림 인스턴스(이 경우 10개)로 계산됩니다. 이 숫자는 시간에 따라 달라질 수 있습니다. 예를 들어 시스템의 모든 VM에 대한 CPU 사용량을 모니터링하는 알림 규칙에는 VM 개수만큼 알림 인스턴스가 추가됩니다. 알림 인스턴스 할당량에 대한 자세한 내용은 [할당량에 도달함 오류](v9-alerting-managerules-grafana.md#v9-alerting-rule-quota-reached) 섹션을 참조하세요.  | 
|  알림 그룹  |  Alertmanager는 루트 알림 정책의 레이블을 사용하여 기본적으로 알림 인스턴스를 그룹화합니다. 이를 통해 연락 지점으로 전송되는 알림 인스턴스의 중복 제거 및 그룹을 제어합니다.  | 
|  연락 지점  |  알림 규칙이 실행될 때 연락처에 알림을 보내는 방법을 정의합니다.  | 
|  메시지 템플릿 지정  |  재사용 가능한 사용자 지정 템플릿을 생성하고 연락 지점에서 사용합니다.  | 
|  알림 정책  |  알림이 그룹화되고 연락 지점으로 라우팅되는 위치, 시간 및 방법에 대한 규칙 세트.  | 
|  레이블 및 레이블 매처  |  레이블을 통해 알림 규칙을 고유하게 식별합니다. 알림 규칙을 알림 정책 및 무음에 연결하여 어떤 정책이 이를 처리해야 하는지, 어떤 알림 규칙을 무음 처리해야 하는지 결정합니다.  | 
|  무음  |  하나 이상의 알림 인스턴스에서 알림을 중지합니다. 무음과 음소거 타이밍의 차이는 무음은 일정 기간만 지속되지만, 음소거 타이밍은 반복 일정에서 수행된다는 점입니다. 레이블 매처를 사용하여 알림 인스턴스를 무음으로 설정합니다.  | 
|  음소거 타이밍  |  새 알림을 생성하거나 전송하지 않으려는 시간 간격을 지정합니다. 또한 유지 관리 기간과 같이 반복 기간에 알림 전달을 동결할 수 있습니다. 기존 알림 정책에 연결되어야 합니다.  | 

# 데이터 소스
<a name="v9-alerting-explore-datasources"></a>

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

Grafana 알림과 호환되는 여러 [데이터 소스](AMG-data-sources-builtin.md)가 있습니다. 각 데이터 소스는 플러그인에 의해 지원됩니다. 아래 나열된 기본 제공 데이터 소스 중 하나를 사용할 수 있습니다.

Amazon Managed Grafana와 호환되고 Amazon Managed Grafana에서 지원하는 데이터 소스입니다.
+ [Alertmanager 데이터 소스에 연결](data-source-alertmanager.md)
+ [Amazon CloudWatch 데이터 소스에 연결](using-amazon-cloudwatch-in-AMG.md)
+ [Amazon OpenSearch Service 데이터 소스에 연결](using-Amazon-OpenSearch-in-AMG.md)
+ [AWS IoT SiteWise 데이터 소스에 연결](using-iotsitewise-in-AMG.md)
+ [an AWS IoT TwinMaker 데이터 소스에 연결](AMG-iot-twinmaker.md)
+ [Amazon Managed Service for Prometheus 및 오픈 소스 Prometheus 데이터 소스에 연결](prometheus-data-source.md)
+ [Amazon Timestream 데이터 소스에 연결](timestream-datasource.md)
+ [Amazon Athena 데이터 소스에 연결](AWS-Athena.md)
+ [Amazon Redshift 데이터 소스에 연결](AWS-Redshift.md)
+ [AWS X-Ray 데이터 소스에 연결](x-ray-data-source.md)
+ [Azure Monitor 데이터 소스에 연결](using-azure-monitor-in-AMG.md)
+ [Google Cloud Monitoring 데이터 소스에 연결](using-google-cloud-monitoring-in-grafana.md)
+ [Graphite 데이터 소스에 연결](using-graphite-in-AMG.md)
+ [InfluxDB 데이터 소스에 연결](using-influxdb-in-AMG.md)
+ [Loki 데이터 소스에 연결](using-loki-in-AMG.md)
+ [Microsoft SQL Server 데이터 소스에 연결](using-microsoft-sql-server-in-AMG.md)
+ [MySQL 데이터 소스에 연결](using-mysql-in-AMG.md)
+ [OpenTSDB 데이터 소스에 연결](using-opentsdb-in-AMG.md)
+ [PostgreSQL 데이터 소스에 연결](using-postgresql-in-AMG.md)
+ [Jaeger 데이터 소스에 연결](jaeger-data-source.md)
+ [Zipkin 데이터 소스에 연결](zipkin-data-source.md)
+ [Tempo 데이터 소스에 연결](tempo-data-source.md)
+ [테스트를 위한 TestData 데이터 소스 구성](testdata-data-source.md)

# 알림 규칙 정보
<a name="v9-alerting-explore-rules"></a>

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

알림 규칙은 알림 인스턴스 실행 여부를 결정하는 평가 기준 세트입니다. 규칙은 하나 이상의 쿼리와 표현식, 조건, 평가 빈도 및 조건이 충족되는 기간(선택 사항)으로 구성됩니다.

쿼리 및 표현식에서는 평가할 데이터세트를 선택하는 반면, 조건은 알림을 생성하기 위해 알림에서 충족하거나 초과해야 하는 임계치를 설정합니다.

간격은 알림 규칙이 평가되는 빈도를 지정합니다. 기간을 구성하면 조건을 충족해야 하는 기간을 나타냅니다. 또한 알림 규칙은 데이터가 없는 경우 알림 동작을 정의할 수 있습니다.

**Topics**
+ [알림 규칙 유형](v9-alerting-explore-rules-types.md)
+ [알림 인스턴스](v9-alerting-rules-instances.md)
+ [네임스페이스 및 그룹](v9-alerting-rules-grouping.md)
+ [알림 템플릿 지정](v9-alerting-rules-notification-templates.md)

# 알림 규칙 유형
<a name="v9-alerting-explore-rules-types"></a>

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

Grafana에서는 여러 알림 규칙 유형을 지원합니다. 다음 섹션에서는 장점과 단점을 설명하고 사용 사례에 적합한 알림 유형을 선택하는 데 도움을 줍니다.

Grafana 관리형 규칙

Grafana 관리형 규칙은 가장 유연한 알림 규칙 유형입니다. 이를 통해 기존 데이터 소스의 데이터에 대해 작업을 취할 수 있는 알림을 생성할 수 있습니다.

모든 데이터 소스를 지원하는 것 외에도 [표현식](v9-panels-query-xform-expressions.md)을 추가하여 데이터를 변환하고 알림 조건을 표현할 수 있습니다.

Mimir, Loki 및 Cortex 규칙

Mimir, Loki 또는 Cortex 알림을 생성하려면 호환되는 Prometheus 데이터 소스가 있어야 합니다. 데이터 소스를 테스트하고 눈금자 API가 지원되는지 세부 정보를 확인하여 데이터 소스가 호환되는지 확인할 수 있습니다.

기록 규칙

기록 규칙은 Mimir, Loki 및 Cortex와 같은 호환되는 Prometheus 데이터 소스에만 사용할 수 있습니다.

기록 규칙을 사용하면 표현식의 결과를 새 시계열 세트로 저장할 수 있습니다. 집계된 데이터에 대해 알림을 실행하거나 동일한 표현식을 반복적으로 쿼리하는 대시보드가 있는 경우에 유용합니다.

Prometheus에서 [기록 규칙](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)에 대해 자세히 알아보세요.

# 알림 인스턴스
<a name="v9-alerting-rules-instances"></a>

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

Grafana 관리형 알림은 다차원 알림을 지원합니다. 각 알림 규칙은 여러 개의 알림 인스턴스를 생성할 수 있습니다. 이는 단일 표현식에서 여러 시리즈를 관찰하는 경우 매우 유용합니다.

다음 PromQL 표현식을 고려합니다.

```
sum by(cpu) (
  rate(node_cpu_seconds_total{mode!="idle"}[1m])
)
```

이 표현식을 사용하는 규칙은 평가 중 관찰된 CPU 양만큼 많은 알림 인스턴스를 생성합니다. 이를 통해 단일 규칙에서 각 CPU의 상태를 보고할 수 있습니다.

# 네임스페이스 및 그룹
<a name="v9-alerting-rules-grouping"></a>

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

알림은 Mimir, Loki 또는 Prometheus 규칙 및 그룹 이름의 네임스페이스와 Grafana 관리형 규칙에 대한 폴더를 사용하여 구성할 수 있습니다.

**네임스페이스**

Grafana 관리형 규칙을 생성할 때 폴더를 사용하여 액세스 제어를 수행하고 특정 폴더 내 모든 규칙에 대한 액세스 권한을 부여하거나 거부할 수 있습니다.

**그룹**

그룹 내의 모든 규칙은 동일한 **간격**으로 평가됩니다.

그룹 내 알림 규칙 및 기록 규칙은 항상 **순차적으로** 평가됩니다. 즉, 규칙은 동시에 그리고 표시 순서대로 평가되지 않습니다.

**작은 정보**  
규칙을 서로 다른 간격으로 동시에 평가하려면 규칙을 서로 다른 그룹에 저장하는 것이 좋습니다.

# 알림 템플릿 지정
<a name="v9-alerting-rules-notification-templates"></a>

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

연락 지점을 통해 전송되는 알림은 알림 템플릿을 사용하여 빌드됩니다. Grafana의 기본 템플릿은 [Go 템플릿 지정 시스템](https://golang.org/pkg/text/template)을 기반으로 합니다. 여기서 일부 필드는 텍스트로 평가되고 다른 필드는 HTML(이스케이핑에 영향을 미칠 수 있음)로 평가됩니다.

기본 템플릿 [default\$1template.go](https://github.com/grafana/alerting/blob/main/templates/default_template.go)는 사용자 지정 템플릿에 유용한 참조입니다.

대부분의 연락 지점 필드는 템플릿 지정 가능하므로 재사용 가능한 사용자 지정 템플릿을 생성하고 여러 연락 지점에서 사용할 수 있습니다. 템플릿을 사용한 사용자 지정 알림에 대한 자세한 내용은 [알림 사용자 지정](v9-alerting-notifications.md) 섹션을 참조하세요.

**중첩된 템플릿**

다른 템플릿 내에 템플릿을 포함할 수 있습니다.

예를 들어 `define` 키워드를 사용하여 템플릿 조각을 정의할 수 있습니다.

```
{{ define "mytemplate" }}
  {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved.
{{ end }}
```

그런 다음, `template` 키워드를 사용하여 이 조각 내에 사용자 지정 템플릿을 포함할 수 있습니다. 예제:

```
Alert summary:
{{ template "mytemplate" . }}
```

다음 기본 제공 템플릿 옵션을 사용하여 사용자 지정 템플릿을 포함할 수 있습니다.


| 이름 | 참고 | 
| --- | --- | 
|  `default.title`  |  개요 수준의 상태 정보를 표시합니다.  | 
|  `default.message`  |  실행 알림 및 해결된 알림의 형식이 지정된 요약을 제공합니다.  | 
|  `teams.default.message`  |  Microsoft Teams에 대해 서식 지정된 `default.messsage`와 비슷합니다.  | 

**알림 템플릿의 HTML**

알림 템플릿의 HTML이 이스케이프 처리됩니다. 결과 알림에서는 HTML 렌더링을 지원하지 않습니다.

일부 알림은 결과 알림의 모양과 느낌을 변경하는 대체 방법을 지원합니다. 예를 들어 Grafana에서는 `<grafana-install-dir>/public/emails/ng_alert_notification.html`에 이메일 알림을 전달하기 위한 기본 템플릿을 설치합니다. 이 파일을 편집하여 모든 알림 이메일의 모양을 변경할 수 있습니다.

# 숫자 데이터에 대한 알림
<a name="v9-alerting-explore-numeric"></a>

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

이 주제에서는 Grafana가 시계열 데이터가 아닌 숫자에 대한 알림을 처리하는 방법을 설명합니다.

특정 데이터 소스 중에서 시계열이 아닌 숫자 데이터는 서버 측 표현식(SSE)로 전달되거나 직접 알림이 전달될 수 있습니다. 이렇게 하면 데이터 소스 내에서 처리와 결과 효율성을 개선할 수 있으며 알림 규칙을 단순화할 수도 있습니다. 시계열 데이터 대신 숫자 데이터에 대한 알림을 전달할 때 레이블이 지정된 각 시계열을 단일 숫자로 줄이지 않아도 됩니다. 대신 레이블이 지정된 번호가 대신 Grafana로 반환됩니다.

**테이블 형식 데이터**

이 기능은 테이블 형식의 데이터를 쿼리하는 백엔드 데이터 소스에서 지원됩니다.
+ MySQL, Postgres, MSSQL 및 Oracle과 같은 SQL 데이터 소스.
+ Azure Kusto 기반 서비스: Azure Monitor(Logs), Azure Monitor(Azure Resource Graph), Azure Data Explorer.

Grafana 관리형 알림 또는 SSE를 사용하는 쿼리는 다음과 같은 경우 이러한 데이터 소스에서 숫자로 간주됩니다.
+ 데이터 소스 쿼리에서 '형식' 옵션이 '테이블'로 설정됩니다.
+ 쿼리에서 Grafana로 반환된 테이블 응답에는 숫자(예: int, double, float) 열 하나와 선택적으로 추가 문자열 열이 포함됩니다.

문자열 열이 있는 경우 해당 열은 레이블이 됩니다. 열 이름은 레이블 이름이 되고 각 행의 값은 해당 레이블의 값이 됩니다. 여러 행이 반환되는 경우 각 행은 레이블로 고유하게 식별되어야 합니다.

**예제**

'DiskSpace'라는 MySQL 테이블의 경우:


| Time | Host | 디스크 | PercentFree | 
| --- | --- | --- | --- | 
|  2021-June-7  |  web1  |  /etc  |  3  | 
|  2021-June-7  |  web2  |  /var  |  4  | 
|  2021-June-7  |  web3  |  /var  |  8  | 
|  ...  |  ...  |  ...  |  ...  | 

시계열을 Grafana에 반환하지 않고 데이터 필터링을 정시에 쿼리할 수 있습니다. 예를 들어 여유 공간이 5% 미만일 때 호스트, 디스크당 트리거되는 알림은 다음과 같습니다.

```
SELECT Host , Disk , CASE WHEN PercentFree  < 5.0 THEN PercentFree  ELSE 0 END FROM ( 
   SELECT
      Host, 
      Disk, 
      Avg(PercentFree) 
   FROM DiskSpace
   Group By
      Host, 
      Disk 
   Where __timeFilter(Time)
```

이 쿼리는 Grafana에 대한 다음 테이블 응답을 반환합니다.


| Host | 디스크 | PercentFree | 
| --- | --- | --- | 
|  web1  |  /etc  |  3  | 
|  web2  |  /var  |  4  | 
|  web3  |  /var  |  0  | 

이 쿼리를 알림 규칙의 **조건**으로 사용하면 0이 아닌 값에서 알림을 보냅니다. 따라서 다음 세 가지 알림 인스턴스가 생성됩니다.


| 레이블 | Status | 
| --- | --- | 
|  \$1Host=web1,disk=/etc\$1  |  알림  | 
|  \$1Host=web2,disk=/var\$1  |  알림  | 
|  \$1Host=web3,disk=/var\$1  |  정상  | 

# 레이블 및 주석
<a name="v9-alerting-explore-labels"></a>

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

레이블 및 주석에는 알림에 대한 정보가 포함되어 있습니다. 레이블 및 주석은 모두 이름이 지정된 값 세트라는 동일한 구조를 사용하지만, 용도는 다릅니다. 레이블 또는 이와 동등한 주석의 예로 `alertname="test"`가 있습니다.

레이블 및 주석의 주요 차이는 레이블은 알림을 다른 모든 알림과 구분하는 데 사용되는 반면 주석은 기존 알림에 추가 정보를 추가하는 데 사용된다는 점입니다.

예를 들어 두 개의 높은 CPU 알림이 있습니다. `server1`에 대한 알림과 `server2`에 대한 알림입니다. 이 예제에서는 `server`라는 레이블을 사용합니다. 첫 번째 알림의 레이블은 `server="server1"`이고 두 번째 알림의 레이블은 `server="server2"`입니다. 그러나 `"The CPU usage for server1 is above 75%."`와 같이 각 알림에 대한 설명을 추가할 수 있습니다. 여기서 `server1` 및 `75%`는 서버의 이름 및 CPU 사용량으로 대체됩니다(이 방법을 알아보려면 [레이블 및 주석 템플릿 지정](v9-alerting-explore-labels-templating.md)의 설명서 참조). 이러한 종류의 설명은 주석으로 더 적합합니다.

## 레이블
<a name="v9-alerting-explore-labels-labels"></a>

레이블에는 알림을 식별하는 정보가 포함되어 있습니다. 레이블의 예로 `server=server1`이 있습니다. 각 알림에는 둘 이상의 레이블이 있을 수 있으며, 알림에 대한 전체 레이블 세트를 레이블 세트라고 합니다. 알림을 식별하는 레이블 세트입니다.

예를 들어 알림에 레이블 세트 `{alertname="High CPU usage",server="server1"}`이 있고, 다른 알림에 레이블 세트 `{alertname="High CPU usage",server="server2"}`가 있을 수 있습니다. `alertname` 레이블은 동일하지만 `server` 레이블은 다르기 때문에 이는 두 개의 개별 알림입니다.

알림에 대한 레이블 세트는 데이터 소스의 레이블, 알림 규칙의 사용자 지정 레이블 및 `alertname`과 같은 여러 예약 레이블의 조합입니다.

**사용자 지정 레이블**

사용자 지정 레이블은 알림 규칙의 추가 레이블입니다. 주석과 마찬가지로 사용자 지정 레이블에는 이름이 있어야 하며, 해당 값에는 알림이 실행될 때 평가되는 텍스트와 템플릿 코드의 조합이 포함될 수 있습니다. 사용자 지정 레이블을 템플릿으로 지정하는 방법에 대한 설명서는 [여기](v9-alerting-explore-labels-templating.md)에서 확인할 수 있습니다.

템플릿과 함께 사용자 지정 레이블을 사용하는 경우 알림 규칙의 연속 평가 사이에서 레이블 값이 변경되지 않도록 하는 것이 중요합니다. 변경될 경우 많은 수의 고유한 알림이 생성되기 때문입니다. 그러나 템플릿이 다른 알림에 대해 다른 레이블 값을 생성하는 것은 괜찮습니다. 예를 들어 사용자 지정 레이블에 쿼리 값을 넣지 마세요. 그러면 값이 변경될 때마다 새 알림 세트가 생성됩니다. 대신 주석을 사용합니다.

또한 알림에 대한 레이블 세트에 이름이 같은 레이블이 둘 이상 없는지 확인하는 것도 중요합니다. 사용자 지정 레이블의 이름이 데이터 소스의 레이블과 동일한 경우 해당 레이블을 대체합니다. 그러나 사용자 지정 레이블의 이름이 예약 레이블과 동일한 경우 사용자 지정 레이블은 알림에서 생략됩니다.

## Annotations
<a name="v9-alerting-explore-labels-annotations"></a>

주석은 기존 알림에 추가 정보를 추가하는 이름 지정된 페어입니다. Grafana에는 `description`, `summary`, `runbook_url`, `dashboardUId`, `panelId`와 같은 여러 추천 주석이 있습니다. 사용자 지정 레이블과 마찬가지로 주석에는 이름이 있어야 하며, 해당 값에는 알림이 실행될 때 평가되는 텍스트와 템플릿 코드의 조합이 포함될 수 있습니다. 주석에 템플릿 코드가 포함된 경우 알림이 실행되면 템플릿이 한 번 평가됩니다. 알림이 해결되더라도 재평가되지 않습니다. 주석을 템플릿으로 지정하는 방법에 대한 설명서는 [여기](v9-alerting-explore-labels-templating.md)에서 확인할 수 있습니다.

# 레이블 일치 작동 방식
<a name="v9-alerting-explore-labels-matching"></a>

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

레이블 및 레이블 매처를 사용하여 알림 규칙을 알림 정책 및 무음에 연결합니다. 이를 통해 매우 유연하게 알림 인스턴스를 관리하고, 이를 처리해야 하는 정책과 무음 알림을 지정할 수 있습니다.

레이블 매처는 **레이블**, **값** 및 **연산자**와 같은 세 개의 개별 부분으로 구성됩니다.
+ **레이블** 필드는 일치시킬 레이블의 이름입니다. 레이블 이름과 정확히 일치해야 합니다.
+ **값** 필드는 지정된 **레이블** 이름의 해당 값과 일치합니다. 일치 여부는 **연산자** 값에 따라 다릅니다.
+ **연산자** 필드는 레이블 값과 일치하는 연산자입니다. 사용 가능한 연산자는 다음과 같습니다.


| 연산자 | 설명 | 
| --- | --- | 
|  `=`  |  값과 정확히 같은 레이블을 선택합니다.  | 
|  `!=`  |  값과 같지 않은 레이블을 선택합니다.  | 
|  `=~`  |  값과 정규식으로 일치하는 레이블을 선택합니다.  | 
|  `!~`  |  값과 정규식으로 일치하지 않는 레이블을 선택합니다.  | 

여러 레이블 매처를 사용하는 경우 AND 논리 연산자를 사용하여 결합됩니다. 즉, 규칙을 정책에 연결하려면 모든 매처가 일치해야 합니다.

**예제 시나리오**

알림에 대해 다음 레이블 세트를 정의하는 경우:

```
{ foo=bar, baz=qux, id=12 }
```

다음과 같습니다.
+ `foo=bar`로 정의된 레이블 매처가 이 알림 규칙과 일치합니다.
+ `foo!=bar`로 정의된 레이블 매처가 이 알림 규칙과 일치하지 *않습니다*.
+ `id=~[0-9]+`로 정의된 레이블 매처가 이 알림 규칙과 일치합니다.
+ `baz!~[0-9]+`로 정의된 레이블 매처가 이 알림 규칙과 일치합니다.
+ `foo=bar` 및 `id=~[0-9]+`로 정의된 레이블 매처 두 개가 이 알림 규칙과 일치합니다.

# Grafana 알림의 레이블
<a name="v9-alerting-explore-labels-alerting"></a>

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

이 주제에서는 레이블이 알림의 기본 구성 요소인 이유를 설명합니다.
+ 알림에 대한 전체 레이블 세트는 Grafana 알림 내에서 알림을 고유하게 식별합니다.
+ Alertmanager는 레이블을 사용하여 알림 정책의 무음 및 알림 그룹에 대한 알림을 매칭합니다.
+ 알림 UI에는 해당 규칙 평가 중에 생성된 모든 알림 인스턴스의 레이블이 표시됩니다.
+ 연락 지점에서는 레이블에 액세스하여 알림을 생성시키는 알림 관련 정보가 포함된 알림을 동적으로 생성할 수 있습니다.
+ [알림 규칙](v9-alerting-managerules.md)에 레이블을 추가할 수 있습니다. 레이블은 수동으로 구성 가능하며 템플릿 함수를 사용하고 다른 레이블을 참조할 수 있습니다. 알림 규칙에 추가된 레이블은 레이블 간 충돌이 발생하는 경우 우선합니다(Grafana 예약 레이블의 경우 제외, 자세한 내용은 아래 참조).

**외부 Alertmanager 호환성**

Grafana의 기본 제공 Alertmanager는 유니코드 레이블 키와 값을 모두 지원합니다. 외부 Prometheus Alertmanager를 사용하는 경우 레이블 키는 해당 [데이터 모델](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)과 호환되어야 합니다. 즉, 레이블 키에는 **ASCII 문자**, **숫자**, **밑줄** 및 일치 정규식 `[a-zA-Z_][a-zA-Z0-9_]*`만 포함되어야 합니다. 유효하지 않은 문자는 다음 규칙에 따라 외부 Alertmanager로 전송되기 전에 Grafana 알림 엔진으로 제거되거나 대체됩니다.
+ `Whitespace`는 제거됩니다.
+ `ASCII characters`는 `_`로 대체됩니다.
+ `All other characters`는 소문자 16진수 표현으로 대체됩니다. 첫 번째 문자인 경우 `_` 접두사가 붙습니다.

**참고**  
여러 레이블 키가 동일한 값으로 새니타이징 처리되는 경우 중복 항목에는 원본 레이블의 짧은 해시가 접미사로 추가됩니다.

**Grafana 예약 레이블**

**참고**  
접두사가 `grafana_`인 레이블은 Grafana에서 특별한 용도로 예약됩니다. 수동으로 구성된 레이블이 `grafana_`로 시작하는 경우 충돌 시 덮어쓸 수 있습니다.

Grafana 예약 레이블은 수동으로 구성된 레이블과 동일한 방식으로 사용할 수 있습니다. 현재 사용 가능한 예약 레이블 목록은 다음과 같습니다.


| Label | 설명 | 
| --- | --- | 
|  grafana\$1folder  |  알림이 포함된 폴더의 제목.  | 

# 레이블 및 주석 템플릿 지정
<a name="v9-alerting-explore-labels-templating"></a>

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

Grafana에서는 Prometheus에서와 마찬가지로 레이블 및 주석을 템플릿으로 지정합니다. 이전에 Prometheus를 사용한 적이 있는 경우 알림의 레이블 및 값을 포함하는 `$labels` 및 `$value` 변수에 익숙할 것입니다. 알림이 Prometheus 데이터 소스를 사용하지 않더라도 Grafana에서 동일한 변수를 사용할 수 있습니다. 이전에 Prometheus를 사용한 적이 없는 경우에도 걱정하지 마세요. 이러한 각 변수와 이를 템플릿으로 지정하는 방법은 이 페이지의 나머지 부분에서 설명합니다.

## Go의 템플릿 지정 언어
<a name="v9-alerting-explore-labels-templating-go"></a>

레이블 및 주석의 템플릿은 Go의 템플릿 지정 언어인 [text/template](https://pkg.go.dev/text/template)으로 작성됩니다.

**여는 태그 및 닫는 태그**

text/template에서 템플릿은 템플릿이 변수를 인쇄하는지 여부와 if 문과 같이 제어 구조를 실행하는지 여부에 관계없이 `{{`로 시작하고 `}}`로 끝납니다. Jinja(변수를 인쇄할 때 `{{` 및 `}}`를 사용하고 제어 구조에서 `{%` 및 `%}`를 사용함)와 같은 다른 템플릿 지정 언어와는 다릅니다.

**인쇄**

무언가의 값을 인쇄하려면 `{{` 및 `}}`를 사용합니다. 함수의 결과 또는 변수 값을 인쇄할 수 있습니다. 예를 들어 `$labels` 변수를 인쇄하려면 다음을 작성합니다.

```
{{ $labels }}
```

**레이블에 대해 반복**

`$labels`에서 각 레이블을 반복하기 위해 `range`를 사용할 수 있습니다. 여기서 `$k`는 이름, `$v`는 현재 레이블의 값을 나타냅니다. 예를 들어 쿼리에서 `instance=test` 레이블을 반환하는 경우 `$k`는 `instance`이고 `$v`는 `test`입니다.

```
{{ range $k, $v := $labels }}
{{ $k }}={{ $v }}
{{ end }}
```

## 레이블, 값 및 값 변수
<a name="v9-alerting-explore-labels-templating-variables"></a>

**레이블 변수**

`$labels` 변수에는 쿼리의 레이블이 포함됩니다. 예를 들어 인스턴스가 중단되었는지 확인하는 쿼리에서 중단된 인스턴스의 이름이 포함된 인스턴스 레이블을 반환할 수 있습니다. 예를 들어 인스턴스 중 하나가 5분 넘게 중단되었을 때 실행되는 알림 규칙이 있다고 가정합니다. 어떤 인스턴스가 중단되었는지 알려주는 요약을 알림에 추가하려고 합니다. `$labels` 변수를 사용하여 요약에서 인스턴스 레이블을 인쇄하는 요약을 생성할 수 있습니다.

```
Instance {{ $labels.instance }} has been down for more than 5 minutes
```

**점을 포함하는 레이블**

인쇄하려는 레이블이 해당 이름에서 점(마침표)을 포함하는 경우 템플릿에서 동일한 점을 사용하는 방식은 작동하지 않습니다.

```
Instance {{ $labels.instance.name }} has been down for more than 5 minutes
```

이는 템플릿이 `$labels.instance`에서 `name`이라고 하는 기존 이외 필드를 사용하려고 하기 때문입니다. 대신 `index` 함수를 사용해야 합니다. 이 함수에서는 `$labels` 변수에서 `instance.name` 레이블을 인쇄합니다.

```
Instance {{ index $labels "instance.name" }} has been down for more than 5 minutes
```

**변수 값**

`$value` 변수는 Prometheus와 다르게 작동합니다. Prometheus에서 `$value`는 표현식의 값을 포함하는 부동 소수점 숫자이지만 Grafana에서는 이 알림 규칙의 모든 임계치, 축소 및 수학 표현식, 클래식 조건의 레이블 및 값을 포함하는 문자열입니다. 쿼리 결과는 포함되지 않습니다. 10s\$110,000s의 행 또는 지표를 반환할 수 있기 때문입니다.

알림 요약에서 `$value` 변수를 사용하는 경우:

```
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $value }})
```

요약은 다음과 같을 수 있습니다.

```
api has an over 5% of responses with 5xx errors: [ var='B' labels={service=api} value=6.789 ]
```

여기에서 `var='B'`는 RefID B를 사용하는 표현식을 참조합니다. Grafana에서 모든 쿼리 및 표현식은 알림 규칙의 각 쿼리 및 표현식을 식별하는 RefID로 식별됩니다. 마찬가지로 `labels={service=api}`는 레이블을 참조하고 `value=6.789`는 값을 참조합니다.

이 경우 RefID A가 없습니다. 대부분의 알림 규칙에서 RefID A는 쿼리를 참조하고 쿼리는 `$value`에 포함되지 않은 많은 행 또는 시계열을 반환할 수 있기 때문입니다.

**변수 값**

`$value` 변수에 필요한 것보다 많은 정보가 포함된 경우 대신 `$values`를 사용하여 개별 표현식의 레이블 및 값을 인쇄할 수 있습니다. `$value`와 달리 `$values` 변수는 각 표현식의 레이블 및 부동 소수점 값을 포함하는 객체 테이블이며 해당 RefID로 인덱싱됩니다.

알림 요약에서 `B` RefID와 함께 표현식 값을 인쇄하는 경우:

```
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $values.B }}%
```

요약에는 값만 포함됩니다.

```
api has an over 5% of responses with 5xx errors: 6.789%
```

`{{ $values.B }}`는 숫자 6.789를 인쇄합니다. 하지만 실제로 B의 부동 소수점 값이 아니라 RefID B의 레이블 및 값을 모두 포함하는 객체를 인쇄할 때 이는 문자열입니다. RefID B의 부동 소수점 값을 사용하려면 `$values.B`에서 `Value` 필드를 사용해야 합니다. 알림 요약에서 부동 소수점 값을 가독 가능한 값으로 변환한 경우:

```
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanize $values.B.Value }}%
```

**데이터 없음, 런타임 오류 및 제한 시간 초과**

알림 규칙의 쿼리에서 데이터 없음을 반환하거나 데이터 소스 오류 또는 제한 시간으로 인해 실패하는 경우 해당 쿼리를 사용하는 모든 임계치, 축소 또는 수학 표현식에서도 데이터 없음 또는 오류를 반환합니다. 이 경우 `$values`에 이러한 표현식이 없습니다. RefID를 사용하기 전에 존재 여부를 확인하는 것이 좋습니다. 그렇지 않으면 쿼리에서 데이터 없음 또는 오류를 반환하는 경우 템플릿이 중단됩니다. if 문을 사용하여 이 작업을 수행할 수 있습니다.

```
{{ if $values.B }}{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanizePercentage $values.B.Value }}{{ end }}
```

## 클래식 조건
<a name="v9-alerting-explore-labels-templating-classic"></a>

규칙이 임계치, 축소 및 수학 표현식 대신 클래식 조건을 사용하는 경우 `$values` 변수는 클래식 조건에서 조건의 참조 ID 및 위치에 의해 인덱싱됩니다. 예를 들어 두 조건을 포함하는 RefID B를 사용하는 클래식 조건이 있는 경우 `$values`에는 두 조건(`B0` 및 `B1`)이 포함됩니다.

```
The first condition is {{ $values.B0 }}, and the second condition is {{ $values.B1 }}
```

## 함수
<a name="v9-alerting-explore-labels-templating-functions"></a>

다음 함수는 레이블 및 주석을 확장히는 경우에도 사용할 수 있습니다.

**args**

`args` 함수는 객체 목록을 arg0, arg1 등의 키가 포함된 맵으로 변환합니다. 이는 여러 인수를 템플릿으로 전달할 수 있도록 제공됩니다.

**예제**

```
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}
```

```
1 2
```

**externalURL**

이 `externalURL` 함수에서는 하나 이상의 ini 파일에 구성된 대로, Grafana 서버의 외부 URL을 반환합니다.

**예제**

```
{{ externalURL }}
```

```
https://example.com/grafana
```

**graphLink**

`graphLink` 함수는 지정된 표현식 및 데이터 소스에서 [Grafana 버전 9에서의 탐색](v9-explore.md)의 그래픽 보기 경로를 반환합니다.

**예제**

```
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]
```

**humanize**

`humanize` 함수는 십진수를 가독 가능한 값으로 변환합니다.

**예제**

```
{{ humanize 1000.0 }}
```

```
1k
```

**humanize1024**

`humanize1024`는 `humanize`와 비슷하게 작동하지만 1000이 아닌 1024를 밑으로 사용합니다.

**예제**

```
{{ humanize1024 1024.0 }}
```

```
1ki
```

**humanizeDuration**

`humanizeDuration` 함수는 초 단위로 기간을 가독 가능한 값으로 변환합니다.

**예제**

```
{{ humanizeDuration 60.0 }}
```

```
1m 0s
```

**humanizePercentage**

`humanizePercentage` 함수는 비율 값을 백분율로 표시하여 가독 가능한 값으로 변환합니다.

**예제**

```
{{ humanizePercentage 0.2 }}
```

```
20%
```

**humanizeTimestamp**

`humanizeTimestamp` 함수는 Unix 타임스탬프를 가독 가능한 값으로 변환합니다.

**예제**

```
{{ humanizeTimestamp 1577836800.0 }}
```

```
2020-01-01 00:00:00 +0000 UTC
```

**match**

`match` 함수는 정규식 패턴을 기준으로 텍스트를 일치시킵니다.

**예제**

```
{{ match "a.*" "abc" }}
```

```
true
```

**pathPrefix**

이 `pathPrefix` 함수에서는 하나 이상의 ini 파일에 구성된 대로, Grafana 서버의 경로를 반환합니다.

**예제**

```
{{ pathPrefix }}
```

```
/grafana
```

**tableLink**

`tableLink` 함수는 지정된 표현식 및 데이터 소스에서 [Grafana 버전 9에서의 탐색](v9-explore.md)의 테이블 보기 경로를 반환합니다.

**예제**

```
{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
```

```
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]
```

**제목**

`title` 함수에서는 각 단어의 첫 번째 문자를 대문자로 표시합니다.

**예제**

```
{{ title "hello, world!" }}
```

```
Hello, World!
```

**toLower**

`toLower` 함수는 모든 텍스트를 소문자로 반환합니다.

**예제**

```
{{ toLower "Hello, world!" }}
```

```
hello, world!
```

**toUpper**

`toUpper` 함수는 모든 텍스트를 대문자로 반환합니다.

**예제**

```
{{ toUpper "Hello, world!" }}
```

```
HELLO, WORLD!
```

**reReplaceAll**

`reReplaceAll` 함수는 정규식과 일치하는 텍스트를 대체합니다.

**예제**

```
{{ reReplaceAll "localhost:(.*)" "example.com:$1" "localhost:8080" }}
```

```
example.com:8080
```

# 알림 규칙의 상태 조건 및 상태
<a name="v9-alerting-explore-state"></a>

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

알림 규칙의 상태 조건 및 상태는 알림에 대한 몇 가지 주요 상태 표시기를 이해하는 데 도움이 됩니다.

*알림 규칙 상태 조건*, *알림 인스턴스 상태*, *알림 규칙 상태*와 같은 세 가지 주요 구성 요소가 있습니다. 서로 관련되었지만 각 구성 요소는 약간 다른 정보를 전달합니다.

**알림 규칙 상태 조건**

알림 규칙은 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
|  정상  |  평가 엔진에서 반환한 시계열 중 `Pending` 또는 `Firing` 상태의 시계열은 없습니다.  | 
|  보류중  |  평가 엔진에서 반환한 하나 이상의 시계열이 `Pending`입니다.  | 
|  실행  |  평가 엔진에서 반환한 하나 이상의 시계열이 `Firing`입니다.  | 

**참고**  
알림은 먼저 `pending`으로 전환된 다음, `firing`으로 전환되므로 알림이 실행되기까지 최소 2회의 평가 주기가 걸립니다.

**알림 인스턴스 상태**

알림 인스턴스는 다음 상태 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
|  정상  |  실행 또는 보류 중 상태가 아닌 알림 상태로, 모든 것이 올바르게 작동하고 있습니다.  | 
|  보류중  |  구성된 임계치 기간 미만으로 활성화된 알림의 상태.  | 
|  알림  |  구성된 임계치 기간보다 오래 활성화된 알림의 상태.  | 
|  NoData  |  구성된 기간에 데이터가 수신되지 않았습니다.  | 
|  오류  |  알림 규칙을 평가하려고 할 때 발생한 오류.  | 

**알림 규칙 상태**

알림 규칙 상태는 다음 중 하나일 수 있습니다.


| State | 설명 | 
| --- | --- | 
|  Ok  |  알림 규칙을 평가할 때 오류가 없습니다.  | 
|  오류  |  알림 규칙을 평가할 때 오류가 발생했습니다.  | 
|  NoData  |  규칙 평가 중에 반환된 하나 이상의 시계열에 데이터가 없습니다.  | 

**`NoData` 및 `Error`에 대한 특별 알림**

알림 규칙 평가에서 `NoData` 또는 `Error` 상태가 생성되면 Grafana 알림은 다음과 같은 추가 레이블이 있는 알림 인스턴스를 생성합니다.


| Label | 설명 | 
| --- | --- | 
|  alertname  |  상태에 따라 `DatasourceNoData` 또는 `DatasourceError`.  | 
|  datasource\$1uid  |  상태의 원인이 되는 데이터 소스의 UID.  | 

무음, 연락 지점으로 라우팅 등을 추가하여 일반 알림과 동일한 방식으로 이러한 알림을 처리할 수 있습니다.

# 연락 지점
<a name="v9-alerting-explore-contacts"></a>

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

연락 지점을 사용하여 알림 규칙이 실행될 때 연락처에 알림을 보내는 방법을 정의합니다. 연락 지점에는 이메일, Slack, 웹후크 등과 같은 하나 이상의 연락 지점 유형이 있을 수 있습니다. 알림 규칙이 실행되면 연락 지점에 대해 나열된 모든 연락 지점 유형에 알림이 전송됩니다. Grafana Alertmanager 및 외부 Alertmanager에 대해 연락 지점을 구성할 수 있습니다.

알림 템플릿 지정 기능을 사용하여 연락 지점 유형에 대한 알림 메시지를 사용자 지정할 수도 있습니다.

**지원되는 연락 지점 유형**

다음 표에는 Grafana에서 지원하는 연락 지점 유형이 나열되어 있습니다.


| 이름 | Type | 
| --- | --- | 
|  Amazon SNS  |  `sns`  | 
|  OpsGenie  |  `opsgenie`  | 
|  PagerDuty  |  `pagerduty`  | 
|  Slack  |  `slack`  | 
|  VictorOps  |  `victorops`  | 

연락 지점에 대한 자세한 내용은 [연락 지점 작업](v9-alerting-contact-points.md) 및 [알림 사용자 지정](v9-alerting-notifications.md) 섹션을 참조하세요.

# 알림
<a name="v9-alerting-explore-notifications"></a>

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

Grafana에서는 Alertmanager를 사용하여 실행 알림 및 해결된 알림에 대한 알림을 보냅니다. Grafana에는 사용자 인터페이스에서 'Grafana'로 참조되는 자체 Alertmanager가 있지만 [Prometheus Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)와 같은 다른 Alertmanager에서도 알림을 보낼 수 있습니다. Grafana Alertmanager는 알림 정책 및 연락 지점을 사용하여 알림이 전송되는 방식과 위치, 알림을 보내야 하는 빈도, 알림을 동일한 알림으로 모두 보내야 하는지, 레이블 세트를 기반으로 그룹화된 알림으로 보내야 하는지, 별도의 알림으로 보내야 하는지를 구성합니다.

## 알림 정책
<a name="v9-alerting-explore-notifications-policies"></a>

알림 정책은 알림이 전송되는 시기와 위치를 제어합니다. 알림 정책은 동일한 알림에서 모든 알림을 함께 보내거나, 레이블 세트를 기반으로 그룹화된 알림으로 알림을 보내거나, 별도의 알림으로 알림을 보내도록 선택할 수 있습니다. 알림을 전송해야 하는 빈도를 제어하고 하루 중 특정 시간과 특정 요일에 알림을 금지하는 음소거 타이밍을 하나 이상 설정하도록 각 알림 정책을 구성할 수 있습니다.

알림 정책은 트리 구조로 구성되며, 트리의 루트에 루트 정책이라고 하는 알림 정책이 있습니다. 루트 정책은 하나만 있을 수 있으며 루트 정책은 삭제할 수 없습니다.

특정 라우팅 정책은 루트 정책의 하위 항목이며 일치하는 레이블 세트를 기반으로 모든 알림 또는 알림 하위 세트를 일치시키는 데 사용할 수 있습니다. 알림 정책은 일치하는 레이블이 알림의 레이블과 일치할 때 알림과 일치합니다.

특정 라우팅 정책에는 자체 하위 정책(중첩된 정책이라고 함)이 있을 수 있으므로 알림을 추가로 일치시킬 수 있습니다. 특정 라우팅 정책의 예로 인프라 알림을 Ops 팀에 보내는 경우가 있지만, 하위 정책은 높은 우선순위 알림을 PagerDuty로 보내고 낮은 우선순위 알림을 Slack으로 보낼 수 있습니다.

레이블에 관계없이 모든 알림은 기본 정책과 일치합니다. 그러나 루트 정책이 알림을 수신하면 각 특정 라우팅 정책을 살펴보고 알림과 일치하는 첫 번째 특정 라우팅 정책으로 알림을 보냅니다. 특정 라우팅 정책에 추가 하위 정책이 있는 경우 중첩된 정책 중 하나에 대해 알림을 일치시키려고 시도할 수 있습니다. 중첩된 정책이 알림과 일치하지 않으면 특정 라우팅 정책이 일치하는 정책입니다. 특정 라우팅 정책이 없거나 특정 라우팅 정책이 알림과 일치하지 않는 경우 루트 정책이 일치하는 정책입니다.

## 연락 지점
<a name="v9-alerting-explore-notifications-contacts"></a>

연락 지점에는 알림을 보내기 위한 구성이 포함되어 있습니다. 연락 지점은 통합 목록으로, 각각 특정 이메일 주소, 서비스 또는 URL로 알림을 보냅니다. 연락 지점에는 동일한 종류의 통합이 여러 개 있거나 서로 다른 통합 유형의 조합이 있을 수 있습니다. 예를 들어 연락 지점에는 PagerDuty 통합, PagerDuty 및 Slack 통합, PagerDuty 통합, Slack 통합, 두 개의 Amazon SNS 통합이 포함될 수 있습니다. 통합 없이 연락 지점을 구성할 수도 있습니다. 이 경우 알림이 전송되지 않습니다.

연락 지점은 알림 정책에 추가될 때까지 알림을 보낼 수 없습니다. 알림 정책은 하나의 연락 지점으로만 알림을 보낼 수 있지만 동시에 여러 알림 정책에 연락 지점을 추가할 수 있습니다. 알림이 알림 정책과 일치하면 해당 알림 정책의 연락 지점으로 알림이 전송되고, 그러면 해당 알림 정책이 해당 구성의 각 통합에 알림을 전송합니다.

**참고**  
연락 지점에 지원되는 통합에 대한 자세한 내용은 [연락 지점](v9-alerting-explore-contacts.md) 섹션을 참조하세요.

## 알림 템플릿 지정
<a name="v9-alerting-explore-notifications-templating"></a>

템플릿을 사용하여 알림을 사용자 지정할 수 있습니다. 예를 들어 템플릿을 사용하여 Slack으로 전송되는 알림의 제목과 메시지를 변경할 수 있습니다.

템플릿은 개별 통합 또는 연락 지점에 국한되지 않으며, 대신 동일한 연락 지점의 여러 통합에서, 서로 다른 연락 지점 간 통합에서도 사용할 수 있습니다. 예를 들어 Grafana 사용자는 `custom_subject_or_title` 템플릿을 생성하여 별도의 두 템플릿을 생성하지 않고도 PagerDuty의 템플릿 제목과 Slack 메시지 제목 모두에 사용할 수 있습니다.

모든 알림 템플릿은 [Go의 템플릿 지정 언어](https://pkg.go.dev/text/template)로 작성되며 알림 페이지의 연락 지점 탭에 있습니다.

## 무음
<a name="v9-alerting-explore-notifications-silences"></a>

무음을 사용하여 하나 이상의 실행 규칙에서 알림을 음소거할 수 있습니다. 무음으로 설정해도 알림 실행 또는 해결은 중지되지 않으며 사용자 인터페이스에서 실행 알림을 숨기지도 않습니다. 무음은 해당 지속 시간 동안 지속되며, 지속 시간은 분, 시간, 일, 개월 또는 년 단위로 구성할 수 있습니다.

# 알림 설정
<a name="v9-alerting-setup"></a>

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

알림을 생성 및 관리하는 데 필요한 기능과 통합을 구성합니다.

**Topics**
+ [외부 Alertmanager 추가](v9-alerting-setup-alertmanager.md)
+ [Grafana 알림 리소스 프로비저닝](v9-alerting-setup-provision.md)

# 외부 Alertmanager 추가
<a name="v9-alerting-setup-alertmanager"></a>

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

외부 Alertmanager를 단일 Alertmanager로 사용하여 모든 알림을 수신하도록 Grafana를 설정합니다. 그러면 Grafana 자체 내에서 이 외부 Alertmanager를 구성하고 관리할 수 있습니다.

Alertmanager를 추가한 후에는 Grafana 알림 UI를 사용하여 무음, 연락 지점 및 알림 정책을 관리할 수 있습니다. 이러한 페이지의 드롭다운 옵션을 사용하면 Alertmanager 사이를 전환할 수 있습니다.

**참고**  
Grafana 9.2부터 알림 페이지의 관리 탭에서 외부 Alertmanager의 URL 구성이 더 이상 사용되지 않습니다. 향후 릴리스에서 제거됩니다.

이제 외부 Alertmanager는 기본 Grafana 탐색 메뉴에서 Grafana 구성을 사용하여 데이터 소스로 구성되어야 합니다. 이를 통해 Grafana 내에서 외부 Alertmanager의 연락 지점 및 알림 정책을 관리할 수 있으며 URL을 기준으로 외부 Alertmanager를 구성할 때 이전에 볼 수 있었던 HTTP 기본 인증 자격 증명도 암호화할 수 있습니다.

외부 Alertmanager를 추가하려면 다음 단계를 수행하세요.

1. 구성, 데이터 소스를 차례로 클릭하세요.

1. Alertmanager를 검색하세요.

1. 구현을 선택하고 필요에 따라 페이지의 필드를 작성하세요.

   데이터 소스를 프로비저닝하는 경우 `jsonData` 필드에서 `handleGrafanaManagedAlerts` 플래그를 `true`로 설정하여 Grafana 관리형 알림을 이 Alertmanager로 보내세요.
**참고**  
Alertmanager의 Prometheus, Grafana Mimir 및 Cortex 구현이 지원됩니다. Prometheus의 경우 Grafana 알림 UI에서 연락 지점 및 알림 정책은 읽기 전용입니다.

1. 저장 및 테스트를 클릭하세요.

# Grafana 알림 리소스 프로비저닝
<a name="v9-alerting-setup-provision"></a>

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

알림 인프라는 종종 복잡하며 해당 파이프라인의 많은 부분이 종종 다른 위치에 상주합니다. 여러 팀과 조직에 걸쳐 규모를 조정하기란 특히 어렵습니다. Grafana 알림 프로비저닝을 사용하면 조직에 가장 적합한 방식으로 알림 데이터를 생성, 관리 및 유지 관리할 수 있으므로 이 프로세스가 더 쉬워집니다.

두 가지 옵션 중에서 선택할 수 있습니다.

1. 알림 프로비저닝 HTTP API를 사용하여 알림 리소스를 프로비저닝합니다.
**참고**  
일반적으로 Grafana UI에서는 API 프로비저닝 알림 규칙을 편집할 수 없습니다.  
편집을 활성화하려면 API에서 알림 규칙을 생성하거나 편집할 때 다음 요청에 x-disable-provenance 헤더를 추가합니다.  

   ```
   POST /api/v1/provisioning/alert-rules
   PUT /api/v1/provisioning/alert-rules/{UID}
   ```

1. Terraform을 사용하여 알림 리소스를 프로비저닝합니다.

**참고**  
현재 Grafana 알림에 대한 프로비저닝은 알림 규칙, 연락 지점, 음소거 타이밍 및 템플릿을 지원합니다. 파일 프로비저닝 또는 Terraform을 사용하여 프로비저닝된 알림 리소스는 Grafana 또는 기타 소스 내에서가 아니라 해당 리소스를 생성한 소스에서만 편집할 수 있습니다. 예를 들어 디스크의 파일을 사용하여 알림 리소스를 프로비저닝하는 경우 Terraform 또는 Grafana 내에서 데이터를 편집할 수 없습니다.

**Topics**
+ [Terraform을 사용하여 알림 리소스 생성 및 관리](v9-alerting-setup-provision-terraform.md)
+ [Grafana에서 프로비저닝된 알림 리소스 보기](v9-alerting-setup-provision-view.md)

# Terraform을 사용하여 알림 리소스 생성 및 관리
<a name="v9-alerting-setup-provision-terraform"></a>

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

Terraform의 Grafana 제공업체를 사용하여 알림 리소스를 관리하고 Grafana 시스템에 프로비저닝합니다. Grafana 알림에 대한 Terraform 제공업체 지원을 사용하면 전체 Grafana 알림 스택을 코드로 쉽게 생성, 관리 및 유지할 수 있습니다.

Terraform을 사용하여 알림 리소스를 관리하는 방법에 대한 자세한 내용은 Terraform 설명서의 [Grafana Provider](https://registry.terraform.io/providers/grafana/grafana/latest/docs) 설명서를 참조하세요.

다음 태스크를 완료하여 Terraform을 사용해 알림 리소스를 생성하고 관리하세요.

1. 프로비저닝을 위한 API 키를 생성하세요.

1. Terraform 제공업체를 구성하세요.

1. Terraform에서 알림 리소스를 정의하세요.

1. `terraform apply`를 실행하여 알림 리소스를 프로비저닝하세요.

## 사전 조건
<a name="v9-alerting-setup-provision-tf-prerequisites"></a>
+ grafana/grafana [Terraform provider](https://registry.terraform.io/providers/grafana/grafana/1.28.0) 1.27.0 이상이 있는지 확인하세요.
+ Grafana 9.1 이상을 사용하고 있는지 확인하세요. Grafana 버전 9를 사용하여 Amazon Managed Grafana 인스턴스를 생성한 경우 이에 해당합니다.

## 프로비저닝을 위한 API 키 생성
<a name="v9-alerting-setup-provision-tf-apikey"></a>

[일반 Grafana API 키를 생성](Using-Grafana-APIs.md)하여 Grafana에서 Terraform을 인증할 수 있습니다. API 키를 사용하는 대부분의 기존 도구는 새로운 Grafana 알림 지원과 함께 자동으로 작동해야 합니다. 특별히 Terraform에서 사용할 키 생성에 대한 자세한 내용은 [Using Terraform for Amazon Managed Grafana automation](https://aws-observability.github.io/observability-best-practices/recipes/recipes/amg-automation-tf/)을 참조하세요.

**프로비저닝을 위한 API 키를 생성하는 방법**

1. CI 파이프라인에 대한 새 서비스 계정을 생성하세요.

1. '알림 규칙 프로비저닝 API에 액세스' 역할을 할당하세요.

1. 새 서비스 계정 토큰을 생성하세요.

1. Terraform에서 사용할 토큰의 이름을 지정하고 저장하세요.

또는 기본 인증을 사용할 수 있습니다. 지원되는 모든 인증 형식을 보려면 Terraform 설명서의 [Grafana authentication](https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication)을 참조하세요.

## Terraform 제공업체 구성
<a name="v9-alerting-setup-provision-tf-configure"></a>

Grafana 알림 지원은 [Grafana Terraform 제공업체](https://registry.terraform.io/providers/grafana/grafana/latest/docs)의 일부로 포함됩니다.

다음은 Terraform 제공업체를 구성하는 데 사용할 수 있는 예제입니다.

```
terraform {
    required_providers {
        grafana = {
            source = "grafana/grafana"
            version = ">= 1.28.2"
        }
    }
}

provider "grafana" {
    url = <YOUR_GRAFANA_URL>
    auth = <YOUR_GRAFANA_API_KEY>
}
```

## 연락 지점 및 템플릿 프로비저닝
<a name="v9-alerting-setup-provision-tf-contacts"></a>

연락 지점은 알림 스택을 외부 환경에 연결합니다. 외부 시스템에 연결하는 방법과 알림을 전송할 위치를 Grafana에 알려줍니다. 15개가 넘는 서로 다른 [통합](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/contact_point#optional) 중에서 선택할 수 있습니다. 이 예제에서는 Slack 연락 지점을 사용합니다.

**연락처 및 템플릿을 프로비저닝하는 방법**

1. 이 코드 블록을 로컬 시스템의 .tf 파일로 복사하세요. *<slack-webhook-url>*을 Slack 웹후크 URL(또는 기타 연락 지점 세부 정보)로 바꾸세요.

   이 예제에서는 Slack에 알림 전달을 전송하는 연락 지점을 생성합니다.

   ```
   resource "grafana_contact_point" "my_slack_contact_point" {
       name = "Send to My Slack Channel"
   
       slack {
           url = <slack-webhook-url>
           text = <<EOT
   {{ len .Alerts.Firing }} alerts are firing!
   
   Alert summaries:
   {{ range .Alerts.Firing }}
   {{ template "Alert Instance Template" . }}
   {{ end }}
   EOT
       }
   }
   ```

1. 텍스트 필드에 알림 텍스트를 입력하세요.

   `text` 필드는 [Go 스타일 템플릿 지정](https://pkg.go.dev/text/template)을 지원합니다. 이를 통해 Grafana 알림 전달 템플릿을 Terraform에서 직접 관리할 수 있습니다.

1. `terraform apply` 명령을 실행합니다.

1. Grafana UI로 이동하여 연락 지점의 세부 정보를 확인하세요.

   UI에서 Terraform을 통해 프로비저닝된 리소스를 편집할 수 없습니다. 그러면 알림 스택이 항상 코드와 동기화됩니다.

1. **테스트**를 클릭하여 연락 지점이 올바르게 작동하는지 확인하세요.

**참고**  
여러 연락 지점에서 동일한 템플릿을 재사용할 수 있습니다. 위 예제에서는 `{{ template "Alert Instance Template" . }}` 문을 사용하여 공유 템플릿이 임베드되어 있습니다.  
그런 다음, 이 조각을 Terraform에서 별도로 관리할 수 있습니다.  

```
resource "grafana_message_template" "my_alert_template" {
    name = "Alert Instance Template"

    template = <<EOT
{{ define "Alert Instance Template" }}
Firing: {{ .Labels.alertname }}
Silence: {{ .SilenceURL }}
{{ end }}
EOT
}
```

## 알림 정책 및 라우팅 프로비저닝
<a name="v9-alerting-setup-provision-tf-notifications"></a>

알림 정책은 위치가 아닌 알림 인스턴스를 라우팅하는 방법을 Grafana에 알려줍니다. 레이블 및 매처 시스템을 사용하여 이전에 정의한 연락 지점에 실행 알림을 연결합니다.

**알림 정책 및 라우팅을 프로비저닝하는 방법**

1. 이 코드 블록을 로컬 시스템의 .tf 파일로 복사하세요.

   이 예제에서는 알림이 `alertname`을 기준으로 그룹화됩니다. 즉, 동일한 이름을 공유하는 알림에서 수신되는 모든 알림이 동일한 Slack 메시지로 그룹화됩니다.

   특정 알림을 다르게 라우팅하려는 경우 하위 정책을 추가할 수 있습니다. 하위 정책을 사용하면 레이블 일치에 따라 다양한 알림에 라우팅을 적용할 수 있습니다. 이 예제에서는 a=b 레이블이 있는 모든 알림에 음소거 타이밍을 적용합니다.

   ```
   resource "grafana_notification_policy" "my_policy" {
       group_by = ["alertname"]
       contact_point = grafana_contact_point.my_slack_contact_point.name
   
       group_wait = "45s"
       group_interval = "6m"
       repeat_interval = "3h"
   
       policy {
           matcher {
               label = "a"
               match = "="
               value = "b"
           }
           group_by = ["..."]
           contact_point = grafana_contact_point.a_different_contact_point.name
           mute_timings = [grafana_mute_timing.my_mute_timing.name]
   
           policy {
               matcher {
                   label = "sublabel"
                   match = "="
                   value = "subvalue"
               }
               contact_point = grafana_contact_point.a_third_contact_point.name
               group_by = ["..."]
           }
       }
   }
   ```

1. mute\$1timings 필드에서 음소거 타이밍을 알림 정책에 연결하세요.

1. `terraform apply` 명령을 실행합니다.

1. Grafana UI로 이동하여 알림 정책의 세부 정보를 확인하세요.
**참고**  
UI를 통해 Terraform에서 프로비저닝된 리소스를 편집할 수 없습니다. 그러면 알림 스택이 항상 코드와 동기화됩니다.

1. **테스트**를 클릭하여 알림 포인트가 올바르게 작동하는지 확인하세요.

## 프로비저닝 음소거 타이밍
<a name="v9-alerting-setup-provision-tf-mutetiming"></a>

음소거 타이밍은 정의된 기간에 알림 메시지를 음소거할 수 있는 기능을 제공합니다.

**음소거 타이밍을 프로비저닝하는 방법**

1. 이 코드 블록을 로컬 시스템의 .tf 파일로 복사하세요.

   이 예제에서는 주말에 알림 전달이 음소거됩니다.

   ```
   resource "grafana_mute_timing" "my_mute_timing" {
       name = "My Mute Timing"
   
       intervals {
           times {
             start = "04:56"
             end = "14:17"
           }
           weekdays = ["saturday", "sunday", "tuesday:thursday"]
           months = ["january:march", "12"]
           years = ["2025:2027"]
       }
   }
   ```

1. `terraform apply` 명령을 실행합니다.

1. Grafana UI로 이동하여 음소거 타이밍의 세부 정보를 확인하세요.

1. `mute_timings` 필드를 사용하여 알림 정책에서 새로 생성된 음소거 타이밍을 참조하세요. 그러면 일부 또는 모든 알림에 음소거 시간이 적용됩니다.
**참고**  
UI를 통해 Terraform에서 프로비저닝된 리소스를 편집할 수 없습니다. 그러면 알림 스택이 항상 코드와 동기화됩니다.

1. **테스트**를 클릭하여 음소거 타이밍이 올바르게 작동하는지 확인하세요.

## 알림 규칙 프로비저닝
<a name="v9-alerting-setup-provision-tf-rules"></a>

[알림 규칙](v9-alerting-managerules.md)을 사용하면 Grafana 데이터 소스에 대해 경고할 수 있습니다. 이미 구성한 데이터 소스일 수도 있습니다. 아니면 알림 규칙과 함께 [Terraform에서 데이터 소스를 정의](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source)할 수도 있습니다.

**알림 규칙을 프로비저닝하는 방법**

1. 쿼리할 데이터 소스와 규칙을 저장할 폴더를 생성하세요.

   이 예제에서 [테스트를 위한 TestData 데이터 소스 구성](testdata-data-source.md) 데이터 소스가 사용됩니다.

   Grafana의 모든 백엔드 데이터 소스에 대해 알림을 정의할 수 있습니다.

   ```
   resource "grafana_data_source" "testdata_datasource" {
       name = "TestData"
       type = "testdata"
   }
   
   resource "grafana_folder" "rule_folder" {
       title = "My Rule Folder"
   }
   ```

1. 알림 규칙을 정의하세요.

   알림 규칙에 대한 자세한 내용은 [how to create Grafana-managed alerts](https://grafana.com/blog/2022/08/01/grafana-alerting-video-how-to-create-alerts-in-grafana-9/)를 참조하세요.

1. 하나 이상의 규칙이 포함된 규칙 그룹을 생성하세요.

   이 예제에서 `grafana_rule_group` 리소스 그룹이 사용됩니다.

   ```
   resource "grafana_rule_group" "my_rule_group" {
       name = "My Alert Rules"
       folder_uid = grafana_folder.rule_folder.uid
       interval_seconds = 60
       org_id = 1
   
       rule {
           name = "My Random Walk Alert"
           condition = "C"
           for = "0s"
   
           // Query the datasource.
           data {
               ref_id = "A"
               relative_time_range {
                   from = 600
                   to = 0
               }
               datasource_uid = grafana_data_source.testdata_datasource.uid
               // `model` is a JSON blob that sends datasource-specific data.
               // It's different for every datasource. The alert's query is defined here.
               model = jsonencode({
                   intervalMs = 1000
                   maxDataPoints = 43200
                   refId = "A"
               })
           }
   
           // The query was configured to obtain data from the last 60 seconds. Let's alert on the average value of that series using a Reduce stage.
           data {
               datasource_uid = "__expr__"
               // You can also create a rule in the UI, then GET that rule to obtain the JSON.
               // This can be helpful when using more complex reduce expressions.
               model = <<EOT
   {"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"last"},"type":"avg"}],"datasource":{"name":"Expression","type":"__expr__","uid":"__expr__"},"expression":"A","hide":false,"intervalMs":1000,"maxDataPoints":43200,"reducer":"last","refId":"B","type":"reduce"}
   EOT
               ref_id = "B"
               relative_time_range {
                   from = 0
                   to = 0
               }
           }
   
           // Now, let's use a math expression as our threshold.
           // We want to alert when the value of stage "B" above exceeds 70.
           data {
               datasource_uid = "__expr__"
               ref_id = "C"
               relative_time_range {
                   from = 0
                   to = 0
               }
               model = jsonencode({
                   expression = "$B > 70"
                   type = "math"
                   refId = "C"
               })
           }
       }
   }
   ```

1. Grafana UI로 이동하여 알림 규칙을 확인하세요.

   알림 규칙이 실행 중인지 확인할 수 있습니다. 또한 각 알림 규칙의 쿼리 단계에 대한 시각화를 볼 수 있습니다.

   알림이 실행되면 Grafana에서는 사용자가 정의한 정책을 통해 알림을 라우팅합니다.

   예를 들어 Slack을 연락 지점으로 선택하면 Grafana의 임베드된 [Alertmanager](https://github.com/prometheus/alertmanager)에서 자동으로 Slack에 메시지를 게시합니다.

# Grafana에서 프로비저닝된 알림 리소스 보기
<a name="v9-alerting-setup-provision-view"></a>

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

 Grafana에서 알림 리소스가 생성되었는지 확인할 수 있습니다.

**Grafana에서 프로비저닝된 리소스를 보는 방법**

1. Grafana 인스턴스를 여세요.

1. 알림으로 이동하세요.

1. 알림 규칙과 같은 알림 리소스 폴더를 클릭하세요.

   프로비저닝된 리소스에는 **프로비저닝됨** 레이블이 지정되므로 수동으로 생성되지 않았음을 표시합니다.

**참고**  
Grafana에서는 프로비저닝된 리소스를 편집할 수 없습니다. 프로비저닝 파일을 변경하고 Grafana를 다시 시작하거나 핫 리로드를 수행하는 경우에만 리소스 속성을 변경할 수 있습니다. 이렇게 하면 파일이 다시 프로비저닝되거나 핫 리로드가 수행되는 경우 덮어쓸 리소스가 변경되는 것을 방지할 수 있습니다.

# Grafana 알림으로 클래식 대시보드 알림 마이그레이션
<a name="v9-alerting-use-grafana-alerts"></a>

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

Grafana 알림을 사용하지 않도록 선택한 워크스페이스는 클래식 대시보드 알림을 사용합니다. 새 Grafana 알림으로 전환하려면 해당 기능을 옵트인해야 합니다.

 AWS Management Console AWS CLI, 또는 Amazon Managed Grafana API를 사용하여 Grafana 알림을 사용하도록 Amazon Managed Grafana 인스턴스를 구성할 수 있습니다. Grafana 알림 켜기 또는 끄기를 포함하여 Amazon Managed Grafana를 구성하는 방법에 대한 자세한 내용은 [Amazon Managed Grafana 워크스페이스 구성](AMG-configure-workspace.md) 섹션을 참조하세요.

**참고**  
Grafana 알림 사용 시 Prometheus가 아닌 Grafana에 정의된 알림 규칙에서 여러 알림을 연락 지점으로 전송합니다. 기본 Grafana 알림을 사용하는 경우 클래식 대시보드 알림을 유지하고 새 Grafana 알림 기능을 활성화하지 않는 것이 좋습니다. Prometheus 데이터 소스에 정의된 알림을 보려면 Grafana 알림을 활성화하는 것이 좋습니다. Grafana 알림은 Prometheus Alertmanager에서 생성된 알림에 대해 단일 알림만 전송합니다.  
이 제한 사항은 Grafana v10.4 이상을 지원하는 Amazon Managed Grafana 워크스페이스에서 제거되었습니다.

## Grafana 알림 시스템으로 마이그레이션
<a name="v9-alerting-use-grafana-alerts-opt-in"></a>

Grafana 알림이 켜져 있으면 기존 클래식 대시보드 알림이 Grafana 알림과 호환되는 형식으로 마이그레이션됩니다. Grafana 인스턴스의 알림 페이지에서 마이그레이션된 알림을 새 알림과 함께 볼 수 있습니다. Grafana 알림을 사용하면 Grafana 관리형 알림 규칙이 일치할 때 단일 알림이 아닌 여러 알림을 전송합니다.

클래식 대시보드 알림 및 Grafana 알림에 대한 읽기 및 쓰기 액세스는 해당 알림을 저장하는 폴더의 권한에 의해 제어됩니다. 마이그레이션 중에 클래식 대시보드 알림 권한은 다음과 같이 새 규칙 권한과 일치합니다.
+ 원본 알림의 대시보드에 권한이 있는 경우 마이그레이션하면 원본 대시보드의 권한(폴더의 상속된 권한 포함)과 일치하도록 이 형식의 폴더(`Migrated {"dashboardUid": "UID", "panelId": 1, "alertId": 1}`)를 생성합니다.
+ 대시보드 권한이 없고 대시보드가 폴더 아래에 있는 경우 규칙은 이 폴더에 연결되어 해당 권한을 상속합니다.
+ 대시보드 권한이 없고 대시보드가 일반 폴더 아래에 있는 경우 규칙은 일반 알림 폴더에 연결되고 규칙은 기본 권한을 상속합니다.

**참고**  
Grafana 알림에는 `NoData`에 대한 `Keep Last State` 옵션이 없으므로 이 옵션은 클래식 규칙 마이그레이션 중에 `NoData`로 표시됩니다. `Error` 처리에 대한 `Keep Last State` 옵션이 새 옵션 `Error`로 마이그레이션됩니다. `Keep Last State`의 동작과 일치시키기 위해 두 경우 모두에서 마이그레이션 중에 Amazon Managed Grafana는 1년 동안 각 알림 규칙에 대해 무음을 자동으로 생성합니다.

알림 채널은 적절한 경로 및 수신기를 사용하여 Alertmanager 구성으로 마이그레이션됩니다. 기본 알림 채널은 기본 경로에 연락 지점으로 추가됩니다. 대시보드 알림과 연결되지 않은 알림 채널은 `autogen-unlinked-channel-recv` 경로로 이동합니다.

### 제한 사항
<a name="v9-alerting-use-grafana-alerts-limitations"></a>
+ Grafana 알림 시스템은 사용 가능한 모든 Prometheus, Loki 및 Alertmanager 데이터 소스에서 규칙을 검색할 수 있습니다. 지원되는 다른 데이터 소스에서 알림 규칙을 가져오지 못할 수 있습니다.
+ Grafana 알림과 클래식 대시보드 알림 사이에서 앞뒤로 마이그레이션하면 한 시스템에서 지원되는 기능에 대한 데이터가 손실될 수 있지만 다른 시스템에서는 손실되지 않을 수 있습니다.
**참고**  
클래식 대시보드 알림으로 다시 마이그레이션하면 생성된 새 알림 규칙을 포함하여 Grafana 알림이 활성화된 상태에서 수행된 구성 알림에 대한 모든 변경 사항이 사라집니다.

# 알림 규칙 관리
<a name="v9-alerting-managerules"></a>

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

알림 규칙은 알림 실행 여부를 결정하는 평가 기준 세트입니다. 알림 규칙은 하나 이상의 쿼리와 표현식, 조건, 평가 빈도 및 조건이 충족되는 기간(선택 사항)으로 구성됩니다.

쿼리 및 표현식에서는 평가할 데이터세트를 선택하는 반면, 조건은 알림을 생성하기 위해 알림에서 충족하거나 초과해야 하는 임계치를 설정합니다. 간격은 알림 규칙이 평가되는 빈도를 지정합니다. 기간을 구성하면 조건을 충족해야 하는 기간을 나타냅니다. 또한 알림 규칙은 데이터가 없는 경우 알림 동작을 정의할 수 있습니다.

**참고**  
Grafana 관리형 알림 규칙은 규칙을 저장하는 폴더에 대한 편집 권한이 있는 사용자만 편집하거나 삭제할 수 있습니다.  
외부 Grafana Mimir 또는 Loki 인스턴스에 대한 알림 규칙은 편집자 또는 관리자 역할을 가진 사용자가 편집하거나 삭제할 수 있습니다.

**Topics**
+ [Grafana 관리형 알림 규칙 생성](v9-alerting-managerules-grafana.md)
+ [Grafana Mimir 또는 Loki 관리형 알림 규칙 생성](v9-alerting-managerules-mimir-loki.md)
+ [Grafana Mimir 또는 Loki 관리형 기록 규칙 생성](v9-alerting-managerules-mimir-loki-recording.md)
+ [Grafana Mimir 또는 Loki 규칙 그룹 및 네임스페이스](v9-alerting-managerules-mimir-loki-groups.md)
+ [알림 규칙 보기 및 편집](v9-alerting-managerules-view-edit.md)

# Grafana 관리형 알림 규칙 생성
<a name="v9-alerting-managerules-grafana"></a>

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

Grafana를 사용하면 하나 이상의 데이터 소스를 쿼리하고, 결과를 줄이거나 변환하며, 서로 비교하거나 임계치를 수정하는 알림 규칙을 생성할 수 있습니다. 이러한 작업이 실행되면 Grafana는 연락 지점에 알림을 보냅니다.

**Grafana 관리형 규칙을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 기존 알림을 나열하는 **알림** 페이지를 여세요.

1. **새 알림 규칙**을 선택하세요.

1. **1단계**에서 다음과 같이 규칙 이름, 유형 및 스토리지 위치를 추가하세요.
   + **규칙 이름**에 설명이 포함된 이름을 추가하세요. 이 이름은 알림 규칙 목록에 표시됩니다. 또한 이 규칙에서 생성된 모든 알림 인스턴스에 대한 `alertname` 레이블이기도 합니다.
   + **규칙 유형** 드롭다운에서 **Grafana 관리형 알림**을 선택하세요.
   + **폴더** 드롭다운에서 규칙을 저장할 폴더를 선택하세요. 폴더를 선택하지 않으면 규칙은 `General` 폴더에 저장됩니다. 폴더를 생성하려면 드롭다운을 선택하고 새 폴더 이름을 입력하세요.

1. **2단계**에서 평가할 쿼리와 표현식을 추가하세요.
   + 기본 이름을 그대로 두거나 마우스를 위로 가져가 편집 아이콘을 선택하여 이름을 변경하세요.
   + 쿼리의 경우 드롭다운에서 데이터 소스를 선택하세요.
   + 하나 이상의 [쿼리 또는 표현식](v9-panels-query-xform-expressions.md)을 추가하세요.
   + 각 표현식에 대해 **클래식 조건**을 선택하여 단일 알림 규칙을 생성하거나 **수학**, **축소**, **리샘플링** 옵션 중에서 선택하여 각 시리즈에 대해 별도의 알림을 생성하세요. 이러한 옵션에 대한 자세한 내용은 [단일 및 다차원 규칙](#v9-alerting-single-multi-rule) 섹션을 참조하세요.
   + **쿼리 실행**을 선택하여 쿼리가 성공했는지 확인하세요.

1. **3단계**에서 조건을 추가하세요.
   + **조건** 드롭다운에서 쿼리 또는 표현식을 선택하여 알림 규칙을 시작하세요.
   + **평가 간격**에서 평가 빈도를 지정합니다. 10초의 배수여야 합니다. 예, `1m`, `30s`.
   + **평가 대상**에서 알림이 시작되기 전에 조건이 true여야 하는 기간을 지정하세요.
**참고**  
조건이 위반되면 알림이 `Pending` 상태가 됩니다. 지정된 기간에 조건이 위반된 상태로 유지되면 알림이 `Firing` 상태로 전환됩니다. 더 이상 충족되지 않으면 `Normal` 상태로 돌아갑니다.
   + **데이터 없음 및 오류 처리 구성**에서 데이터가 없는 경우 알림 동작을 구성하세요. [데이터 없음 또는 오류 사례 처리](#v9-alerting-rule-no-data-error)의 지침을 사용하세요.
   + **미리 보기**를 선택하여 현재 쿼리 실행 결과를 확인하세요. 미리 보기에서는 데이터 없음 및 오류 처리 조건이 제외됩니다.

1. **4단계**에서 규칙과 연결된 메타데이터를 추가하세요.
   + 설명과 요약을 추가하여 알림 메시지를 사용자 지정하세요. [레이블 및 주석](v9-alerting-explore-labels.md)의 지침을 사용하세요.
   + 런북 URL, 패널, 대시보드 및 알림 ID를 추가하세요.
   + 사용자 지정 레이블을 추가하세요.

1. **저장**을 선택하여 규칙을 저장하거나 **저장 및 종료**를 선택하여 규칙을 저장하고 **알림** 페이지로 돌아가세요.

규칙을 생성한 후 규칙에 대한 알림을 생성할 수 있습니다. 알림에 대한 자세한 내용은 [알림 전달 관리](v9-alerting-managenotifications.md) 섹션을 참조하세요.

## 단일 및 다차원 규칙
<a name="v9-alerting-single-multi-rule"></a>

Grafana 관리형 알림 규칙의 경우 클래식 조건의 규칙을 생성하거나 다차원 규칙을 생성할 수 있습니다.

**단일 차원 규칙(클래식 조건)**

클래식 조건 표현식을 사용하여 조건이 충족될 때 단일 알림을 시작하는 규칙을 생성합니다. 여러 시리즈를 반환하는 쿼리의 경우 Grafana에서는 각 시리즈의 알림 상태를 추적하지 않습니다. 따라서 Grafana는 여러 시리즈에 대한 알림 조건이 충족되더라도 단일 알림만 전송합니다.

표현식을 포맷하는 방법에 대한 자세한 내용은 *Grafana 설명서*의 [Expressions](https://grafana.com/docs/grafana/next/panels/query-a-data-source/)를 참조하세요.

**다차원 규칙**

쿼리에서 반환된 각 시리즈에 대해 별도의 알림 인스턴스를 생성하려면 다차원 규칙을 생성합니다.

**참고**  
다차원 규칙에 의해 생성된 각 알림 인스턴스는 총 알림 할당량에 포함됩니다. 알림 할당량에 도달하면 규칙이 평가되지 않습니다. 다차원 규칙의 할당량에 대한 자세한 내용은 [할당량에 도달함 오류](#v9-alerting-rule-quota-reached) 섹션을 참조하세요.

단일 규칙에서 여러 인스턴스를 생성하려면 `Math`, `Reduce` 또는 `Resample` 표현식을 사용하여 다차원 규칙을 생성합니다. 예를 들어, 다음을 수행할 수 있습니다.
+ 각 쿼리에 `Reduce` 표현식을 추가하여 선택한 시간 범위의 값을 단일 값으로 집계합니다. ([숫자 데이터를 사용하는 규칙](v9-alerting-explore-numeric.md)에는 필요하지 않습니다.)
+ 규칙의 조건에 `Math` 표현식을 추가합니다. 쿼리 또는 축소 표현식에서 규칙이 알림을 시작하지 않아야 하는 경우 0 또는 알림을 시작해야 하는 경우 양수를 이미 반환하는 경우 필요하지 않습니다.

  다음은 몇 가지 예제입니다.
  + `$B > 70`: B 쿼리/표현식 값이 70을 초과하는 경우 알림을 시작해야 하는지 여부.
  + `$B < $C * 100`: B 값이 C 값에 100을 곱한 값보다 작은 경우 알림을 시작해야 하는 경우. 비교 중인 쿼리의 결과에 여러 시리즈가 있는 경우 레이블이 같거나 한 쿼리가 다른 쿼리의 하위 세트인 경우 서로 다른 쿼리의 시리즈가 일치합니다.

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



**다차원 규칙에 대한 성능 고려 사항**

각 알림 인스턴스는 알림 할당량에 포함됩니다. 알림 할당량 내에서 수용할 수 있는 것보다 많은 인스턴스를 생성하는 다차원 규칙은 평가되지 않으며 할당량 오류를 반환합니다. 자세한 내용은 [할당량에 도달함 오류](#v9-alerting-rule-quota-reached) 단원을 참조하십시오.

다차원 알림은 Grafana에서 알림 규칙을 평가하기 위해 쿼리할 때 Grafana 워크스페이스의 성능뿐만 아니라 데이터 소스의 성능에도 큰 영향을 미칠 수 있습니다. 다음 고려 사항은 모니터링 시스템의 성능을 최적화하는 데 도움이 될 수 있습니다.
+ **규칙 평가 빈도** - 알림 규칙의 **평가 간격** 속성은 규칙 평가 빈도를 제어합니다. 허용되는 최조 평가 빈도를 사용하는 것이 좋습니다.
+ **결과 세트 카디널리티** - 규칙으로 생성한 알림 인스턴스 수가 성능에 영향을 미칩니다. 플릿의 모든 VM에서 모든 API 경로에 대한 API 응답 오류를 모니터링한다고 가정합니다 이 세트에는 경로 수에 VM 수를 곱한 카디널리티가 있습니다. 예를 들어, VM당 경로 기준 대신 VM당 총 오류 수를 모니터링하여 결과 세트의 카디널리티를 줄일 수 있습니다.
+ **쿼리의 복잡성** - 데이터 소스가 처리 및 응답하여 리소스를 빠르게 소비할 수 있는 쿼리. 이 고려 사항은 위에 나열된 다른 고려 사항보다 덜 중요하지만, 최대한 줄이면 개별 쿼리 성능을 살펴볼 때 차이가 나타날 수 있습니다. 또한 이러한 규칙의 평가가 데이터 소스에 미치는 성능 영향도 알고 있어야 합니다. 알림 쿼리는 데이터베이스 모니터링으로 처리되는 대부분의 쿼리이므로 Grafana 인스턴스에 영향을 미치는 동일한 부하 인자도 이에 영향을 미칩니다.

## 할당량에 도달함 오류
<a name="v9-alerting-rule-quota-reached"></a>

단일 워크스페이스에 있을 수 있는 알림 인스턴스 수에 대한 할당량이 있습니다. 해당 숫자에 도달하면 해당 워크스페이스에서 더 이상 새 알림 규칙을 생성할 수 없습니다. 다차원 알림의 경우 알림 인스턴스 수는 시간이 지남에 따라 달라질 수 있습니다.

다음은 알림 인스턴스로 작업할 때 명심해야 할 중요한 사항입니다.
+ 단일 차원 규칙만 생성하는 경우 각 규칙은 단일 알림 인스턴스입니다. 단일 워크스페이스에서 알림 인스턴스 할당량과 동일한 수의 규칙을 생성할 수 있으며 그 이상은 생성할 수 없습니다.
+ 다차원 규칙은 여러 개의 알림 인스턴스를 생성하지만, 해당 인스턴스가 평가될 때까지 수를 알 수 없습니다. 예를 들어 Amazon EC2 인스턴스의 CPU 사용량을 추적하는 알림 규칙을 생성하는 경우 생성할 때 EC2 인스턴스가 50개(따라서 알림 인스턴스 50개)일 수 있지만 일주일 후에 EC2 인스턴스를 10개 더 추가하는 경우 다음 평가에서 알림 인스턴스는 60개입니다.

  알림 인스턴스 수는 다차원 경고를 생성할 때 평가되며, 알림 인스턴스 할당량을 즉시 초과하는 알림은 생성할 수 없습니다. 알림 인스턴스 수는 변경될 수 있으므로 규칙이 평가될 때마다 할당량이 확인됩니다.
+ 규칙 평가 시 규칙으로 인해 알림 인스턴스의 할당량을 초과하면 총 알림 인스턴스 수를 서비스 할당량 미만으로 가져오는 알림 규칙을 업데이트할 때까지 해당 규칙이 평가되지 않습니다. 이 경우 할당량에 도달했음을 알리는 알림 전달을 수신합니다(알림은 평가 중인 규칙에 대한 알림 정책을 사용함). 알림에는 값이 `QuotaReachedError`인 `Error` 주석이 포함됩니다.
+ `QuotaReachedError`로 평가를 중지하는 규칙. 평가는 업데이트가 수행되고 업데이트 후 평가 자체로 인해 `QuotaReachedError`가 발생하지 않는 경우에만 재개됩니다. 평가되지 않는 규칙은 Grafana 콘솔에서 **할당량에 도달함** 오류를 표시합니다.
+ 알림 규칙을 제거하거나 다차원 알림을 편집하여 알림 인스턴스 수를 줄일 수 있습니다(예: VM의 API당 오류에 대한 하나의 알림이 아니라 VM당 오류에 대한 하나의 알림 생성).
+ 평가를 재개하려면 알림을 업데이트하고 저장합니다. 이를 업데이트하여 알림 인스턴스 수를 줄이거나 다른 변경 사항을 적용하여 알림 인스턴스 수를 줄인 경우 변경 없이 저장할 수 있습니다. 재개할 수 있는 경우 재개합니다. 다른 `QuotaReachedError`가 발생하면 저장할 수 없습니다.
+ 알림 할당량을 초과하지 않고 알림이 저장되고 평가를 재개하면 **할당량에 도달함** 오류가 Grafana 콘솔에 일정 시간 동안(평가 간격까지) 계속 표시될 수 있지만, 규칙 임계치가 충족되면 알림 규칙 평가가 시작되고 알림이 전송됩니다.
+ 알림 할당량 및 기타 할당량에 대한 자세한 내용은 [Amazon Managed Grafana 서비스 할당량](AMG_quotas.md) 섹션을 참조하세요.

## 데이터 없음 또는 오류 사례 처리
<a name="v9-alerting-rule-no-data-error"></a>

데이터가 없거나 오류가 있을 때 알림 동작을 처리하는 방법에 대한 옵션을 선택합니다.

데이터 없음 처리를 위한 옵션은 다음 표에 나열되어 있습니다.


| 데이터 없음 옵션 | 동작 | 
| --- | --- | 
|  데이터 없음  |  알림 규칙의 이름과 UID, 레이블로 데이터를 반환하지 않은 데이터 소스의 UID를 사용하여 `DatasourceNoData` 알림을 생성합니다.  | 
|  알림  |  알림 규칙 상태를 `Alerting` 상태로 설정합니다.  | 
|  정상  |  알림 규칙 상태를 `Normal` 상태로 설정합니다.  | 

오류 사례 처리 옵션은 다음 표에 나와 있습니다.


| 오류 또는 제한 시간 옵션 | 동작 | 
| --- | --- | 
|  알림  |  알림 규칙 상태를 `Alerting` 상태로 설정  | 
|  정상  |  알림 규칙 상태를 `Normal` 상태로 설정  | 
|  오류  |  알림 규칙의 이름과 UID, 레이블로 데이터를 반환하지 않은 데이터 소스의 UID를 사용하여 `DatasourceError` 알림을 생성합니다.  | 

# Grafana Mimir 또는 Loki 관리형 알림 규칙 생성
<a name="v9-alerting-managerules-mimir-loki"></a>

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

Grafana를 사용하면 외부 Grafana Mimir 또는 Loki 인스턴스에 대한 알림 규칙을 생성할 수 있습니다.

**참고**  
Grafana Mimir는 Amazon Managed Service for Prometheus 및 Prometheus 데이터 소스에 연결할 수 있습니다.

**사전 조건**
+ Prometheus 데이터 소스에 대한 쓰기 권한이 있는지 확인합니다. 그렇지 않으면 Cortex 관리형 알림 규칙을 생성하거나 업데이트할 수 없습니다.
+ Grafana Mimir 및 Loki 데이터 소스의 경우 해당 서비스를 구성하여 눈금자 API를 활성화합니다.
  + **Loki** - Loki 데이터 소스의 기본값인 `local` 규칙 스토리지 유형은 규칙 보기만 지원합니다. 규칙을 편집하려면 다른 스토리지 유형 중 하나를 구성합니다.
  + **Grafana Mimir** - `/prometheus`가 아닌 레거시 `/api/prom` 접두사를 사용합니다. Prometheus 데이터 소스는 Grafana Mimir 및 Prometheus를 모두 지원하며 Grafana는 쿼리 API 및 눈금자 API가 모두 동일한 URL에 있을 것으로 예상합니다. 눈금자 API에 별도의 URL을 제공할 수 없습니다.

**참고**  
특정 Loki 또는 Prometheus 데이터 소스에 대한 알림 규칙을 관리하지 않으려면 해당 설정으로 이동하여 **알림 UI를 통해 알림 관리** 확인란의 선택을 취소합니다.

**Grafana Mimir 또는 Loki 관리형 알림 규칙을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 기존 알림을 나열하는 **알림** 페이지를 여세요.

1. **알림 규칙 생성**을 선택하세요.

1. **1단계**에서 다음과 같이 규칙 유형과 세부 정보를 선택하세요.
   + **Mimir 또는 Loki 알림**을 선택하세요.
   + **규칙 이름**에 설명이 포함된 이름을 추가하세요. 이 이름은 알림 규칙 목록에 표시됩니다. 또한 이 규칙에서 생성된 모든 알림 인스턴스에 대한 `alertname` 레이블이기도 합니다.
   + **데이터 소스 선택** 드롭다운에서 Prometheus 또는 Loki 데이터 소스를 선택하세요.
   + **네임스페이스** 드롭다운에서 기존 규칙 네임스페이스를 선택하세요. 그렇지 않으면 **새로 추가**를 선택하고 이름을 입력하여 이름을 생성하세요. 네임스페이스에는 하나 이상의 규칙 그룹이 포함될 수 있으며 조직의 목적만 있을 수 있습니다. 자세한 내용은 [Cortex 또는 Loki 규칙 그룹 및 네임스페이스](alert-rules.md#alert-rule-groups) 단원을 참조하십시오.
   + **그룹** 드롭다운에서 선택한 네임스페이스 내에서 기존 그룹을 선택하세요. 그렇지 않으면 **새로 추가**를 선택하고 이름을 입력하여 이름을 생성하세요. 새로 생성된 규칙은 그룹 끝에 추가됩니다. 그룹 내 규칙은 동일한 평가 시간으로 일정한 간격에 따라 순차적으로 실행됩니다.

1. **2단계**에서 평가할 쿼리를 추가하세요.

   값은 PromQL 또는 LogQL 표현식일 수 있습니다. 평가 결과에 값이 0보다 큰 시리즈가 하나 이상 있는 경우 규칙은 알림을 시작합니다. 각 시리즈에 대한 알림이 생성됩니다.

1. **3단계**에서 알림 평가 간격을 지정하세요.

   조건의 **기간** 텍스트 상자에 알림이 시작되기 전 조건이 true여야 하는 기간을 지정하세요. `5m`을 지정하는 경우 알림이 시작되기 전에 5분 동안 조건이 true여야 합니다.
**참고**  
조건이 충족되면 알림이 `Pending` 상태가 됩니다. 지정된 기간에 조건이 활성 상태로 유지되면 알림이 `Firing` 상태로 전환됩니다. 더 이상 충족되지 않으면 `Normal` 상태로 돌아갑니다.

1. **4단계**에서 규칙과 연결된 메타데이터를 추가하세요.
   + 설명과 요약을 추가하여 알림 메시지를 사용자 지정하세요. [레이블 및 주석](v9-alerting-explore-labels.md)의 지침을 사용하세요.
   + 런북 URL, 패널, 대시보드 및 알림 ID를 추가하세요.
   + 사용자 지정 레이블을 추가하세요.

1. **알림 미리 보기**를 선택하여 규칙을 평가하고 어떤 알림을 생성할지 확인하세요. 각 알림의 상태 및 값과 함께 알림 목록을 표시합니다.

1. **저장**을 선택하여 규칙을 저장하거나 **저장 및 종료**를 선택하여 규칙을 저장하고 **알림** 페이지로 돌아가세요.

규칙을 생성한 후 규칙에 대한 알림을 생성할 수 있습니다. 알림에 대한 자세한 내용은 [알림 전달 관리](v9-alerting-managenotifications.md) 섹션을 참조하세요.

# Grafana Mimir 또는 Loki 관리형 기록 규칙 생성
<a name="v9-alerting-managerules-mimir-loki-recording"></a>

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

외부 Grafana Mimir 또는 Loki 인스턴스에 대한 기록 규칙을 생성 및 관리할 수 있습니다. 기록 규칙을 사용하면 자주 필요하거나 계산 비용이 많이 드는 표현식을 미리 계산하고, 해당 결과를 새로운 시계열 세트로 저장합니다. 이 새 시계열을 쿼리하는 것이 더 빠릅니다. 특히 대시보드를 새로 고칠 때마다 동일한 표현식을 쿼리하기 때문에 대시보드의 경우 더 빠릅니다.

**사전 조건**

Grafana Mimir 및 Loki 데이터 소스의 경우 해당 서비스를 구성하여 눈금자 API를 활성화합니다.
+ **Loki** - Loki 데이터 소스의 기본값인 `local` 규칙 스토리지 유형은 규칙 보기만 지원합니다. 규칙을 편집하려면 다른 스토리지 유형 중 하나를 구성합니다.
+ **Grafana Mimir** - Grafana Mimir를 가리키도록 데이터 소스를 구성할 때는 `/prometheus`가 아닌 레거시 `/api/prom` 접두사를 사용합니다. Prometheus 데이터 소스는 Grafana Mimir 및 Prometheus를 모두 지원하며 Grafana는 쿼리 API 및 눈금자 API가 모두 동일한 URL에 있을 것으로 예상합니다. 눈금자 API에 별도의 URL을 제공할 수 없습니다.

**참고**  
특정 Loki 또는 Prometheus 데이터 소스에 대한 알림 규칙을 관리하지 않으려면 해당 설정으로 이동하여 **알림 UI를 통해 알림 관리** 확인란의 선택을 취소합니다.

**Grafana Mimir 또는 Loki 관리형 기록 규칙을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 기존 알림을 나열하는 **알림** 페이지를 여세요.

1. **알림 규칙 생성**을 선택하세요.

1. **1단계**에서 다음과 같이 규칙 유형, 규칙 이름 및 스토리지 위치를 추가하세요.
   + **Mimir 또는 Loki 기록 규칙** 옵션을 선택하세요.
   + **규칙 이름**에 설명이 포함된 이름을 추가하세요. 이 이름은 알림 규칙 목록에 표시됩니다. 또한 이 규칙에서 생성된 모든 알림 인스턴스에 대한 `alertname` 레이블이기도 합니다.
   + **데이터 소스 선택** 드롭다운에서 Prometheus 또는 Loki 데이터 소스를 선택하세요.
   + **네임스페이스** 드롭다운에서 기존 규칙 네임스페이스를 선택하세요. 그렇지 않으면 **새로 추가**를 선택하고 이름을 입력하여 이름을 생성하세요. 네임스페이스에는 하나 이상의 규칙 그룹이 포함될 수 있으며 조직의 목적만 있을 수 있습니다. 자세한 내용은 [Cortex 또는 Loki 규칙 그룹 및 네임스페이스](alert-rules.md#alert-rule-groups) 단원을 참조하십시오.
   + **그룹** 드롭다운에서 선택한 네임스페이스 내에서 기존 그룹을 선택하세요. 그렇지 않으면 **새로 추가**를 선택하고 이름을 입력하여 이름을 생성하세요. 새로 생성된 규칙은 그룹 끝에 추가됩니다. 그룹 내 규칙은 동일한 평가 시간으로 일정한 간격에 따라 순차적으로 실행됩니다.

1. **2단계**에서 평가할 쿼리를 추가하세요.

   값은 PromQL 또는 LogQL 표현식일 수 있습니다. 평가 결과에 값이 0보다 큰 시리즈가 하나 이상 있는 경우 규칙은 알림을 시작합니다. 각 시리즈에 대한 알림이 생성됩니다.

1. **3단계**에서 규칙과 연결된 메타데이터를 추가하세요.
   + 설명과 요약을 추가하여 알림 메시지를 사용자 지정하세요. [알림 규칙에 대한 주석 및 레이블](alert-rules.md#alert-rule-labels)의 지침을 사용하세요.
   + 런북 URL, 패널, 대시보드 및 알림 ID를 추가하세요.
   + 사용자 지정 레이블을 추가하세요.

1. **저장**을 선택하여 규칙을 저장하거나 **저장 및 종료**를 선택하여 규칙을 저장하고 **알림** 페이지로 돌아가세요.

# Grafana Mimir 또는 Loki 규칙 그룹 및 네임스페이스
<a name="v9-alerting-managerules-mimir-loki-groups"></a>

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

규칙을 구성할 수 있습니다. 규칙은 규칙 그룹 내에서 생성되며 규칙 그룹은 네임스페이스로 구성됩니다. 규칙 그룹 내의 규칙은 정기적으로 순차적으로 실행됩니다. 기본 간격은 1분입니다. Grafana Mimir 또는 Loki 네임스페이스 및 규칙 그룹의 이름을 바꾸고 규칙 그룹 평가 간격을 편집할 수 있습니다.

**규칙 그룹 네임스페이스를 편집하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요.

1. 편집하려는 규칙 그룹 또는 네임스페이스 내 규칙으로 이동하세요.

1. **편집**(펜) 아이콘을 선택하세요.

1. 규칙 그룹 또는 네임스페이스를 변경하세요.
**참고**  
네임스페이스의 경우 이름만 편집할 수 있습니다. 규칙 그룹의 경우 이름 또는 그룹의 규칙에 대한 평가 간격을 변경하세요. 예를 들어 `1m`을 선택하여 규칙을 분당 1회 평가하거나 `30s`를 선택하여 30초마다 1회 평가할 수 있습니다.

1. **변경 사항 저장**을 선택하세요.

# 알림 규칙 보기 및 편집
<a name="v9-alerting-managerules-view-edit"></a>

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

**알림** 페이지에는 알림 규칙이 나열됩니다. 기본적으로 규칙은 데이터 소스 유형별로 그룹화됩니다. **Grafana** 섹션에는 Grafana에서 관리하는 규칙이 나열되고 **Cortex/Loki** 섹션에는 Prometheus 호환 데이터 소스에 대한 규칙이 나열됩니다. Prometheus 호환 데이터 소스에 대한 알림 규칙은 볼 수 있지만 편집할 수 없습니다.

Mimir/Cortex/Loki 규칙 섹션에는 Mimir, Cortex 또는 Loki 데이터 소스에 대한 모든 규칙이 나열됩니다. 클라우드 알림 규칙도 이 섹션에 나열되어 있습니다.

대량의 알림을 관리할 때 확장 알림 규칙 검색 기능을 사용하여 폴더, 평가 그룹 및 규칙을 필터링할 수 있습니다. 또한 레이블, 상태 조건, 유형 및 상태와 같은 속성별로 알림 규칙을 필터링할 수 있습니다.

**참고**  
프로비저닝된 알림에 대한 쿼리 정의를 볼 수 있지만 편집할 수는 없습니다. 이를 볼 수 있으면 규칙 정의를 위해 프로비저닝 리포지토리로 돌아가지 않고도 쿼리 및 규칙 정의가 올바른지 확인할 수 있습니다.

## 알림 규칙 보기
<a name="v9-alerting-managerules-view"></a>

Grafana 알림을 사용하면 한 페이지에서 모든 알림을 볼 수 있습니다.

**알림 세부 정보를 보는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요. 기본적으로 규칙은 데이터 소스 유형별 그룹으로 표시됩니다. 각 알림의 현재 상태를 기준으로 볼 수도 있습니다(다음 텍스트에 자세히 설명함).

1. **보기 형식**에서 원하는 옵션을 선택하여 그룹 보기와 상태 보기 사이를 전환할 수 있습니다.

1. 해당 행에 대한 자세한 내용을 확인하려면 행 옆의 화살표를 선택합니다. 규칙의 세부 정보에는 규칙 레이블, 주석, 데이터 소스 및 쿼리와 규칙에서 생성되는 알림 인스턴스 목록이 포함됩니다.

**참고**  
알림의 세부 정보를 이해하는 방법에 대한 자세한 내용은 [알림 규칙의 상태 조건 및 상태](v9-alerting-explore-state.md) 섹션을 참조하세요.

**그룹 보기**

그룹 보기에는 폴더별로 그룹화된 Grafana 알림 규칙과 `namespace` \$1 `group`으로 그룹화된 Loki 또는 Prometheus 알림 규칙이 표시됩니다. 이는 규칙 관리를 위한 기본 규칙 목록 보기입니다. 각 그룹을 확장하여 이 그룹의 규칙 목록을 볼 수 있습니다. 규칙을 더 확장하여 세부 정보를 확인합니다. 규칙에서 생성되는 알림 및 작업 버튼을 확장하여 세부 정보를 볼 수도 있습니다.

**상태 보기**

상태 보기에는 상태별로 그룹화된 알림 규칙이 표시됩니다. 이 보기를 사용하여 어떤 규칙이 어떤 상태에 있는지에 대한 개요를 확인합니다. 각 규칙을 확장하여 세부 정보를 볼 수 있습니다. 작업 버튼 및 이 규칙에서 생성된 모든 알림과 각 알림을 추가로 확장하여 세부 정보를 볼 수 있습니다.

**알림 규칙 필터링**

알림 페이지에 표시되는 **알림** 규칙을 여러 가지 방법으로 필터링할 수 있습니다.
+ **데이터 소스 선택**을 선택하고 필터링할 데이터 소스를 선택하여 특정 데이터 소스를 쿼리하는 규칙을 표시하도록 필터링할 수 있습니다.
+ **레이블별 검색**에서 검색 기준을 선택하여 레이블별로 필터링할 수 있습니다. 예를 들어 미국 및 EU에서 프로덕션 경고를 필터링`environment=production,region=~US|EU,severity!=warning`하도록 를 입력할 수 있습니다.
+ **상태별 알림 필터링**을 선택하고 보려는 상태를 선택하여 특정 상태의 규칙을 표시하도록 필터링할 수 있습니다

## 알림 규칙 편집 또는 삭제
<a name="v9-alerting-managerules-edit"></a>

Grafana 관리형 알림 규칙은 규칙을 저장하는 폴더에 대한 편집 권한이 있는 사용자만 편집하거나 삭제할 수 있습니다. 외부 Mimir 또는 Loki 인스턴스에 대한 알림 규칙은 편집자 또는 관리자 역할의 사용자가 편집하거나 삭제할 수 있습니다.

**규칙을 편집하거나 삭제하는 방법**

1. **보기**, **편집** 및 **삭제**에 대한 규칙 제어가 표시될 때까지 규칙을 확장하세요.

1. **편집**을 선택하여 규칙 생성 페이지를 여세요. 규칙을 생성하는 것과 동일한 방식으로 업데이트하세요. 자세한 내용은 [Grafana 관리형 알림 규칙 생성](v9-alerting-managerules-grafana.md) 또는 [Grafana Mimir 또는 Loki 관리형 알림 규칙 생성](v9-alerting-managerules-mimir-loki.md)의 지침을 참조하세요.

1. 선택적으로 **삭제**를 선택하여 규칙을 삭제하세요.

## 알림 규칙 내보내기
<a name="v9-alerting-managerules-export"></a>

**내보내기**를 선택하여 Grafana 워크스페이스에서 규칙을 YAML 또는 JSON으로 내보낼 수 있습니다. 새 규칙을 정의하고 내보낼 수 있는 옵션이 제공됩니다. UI를 사용하여 규칙을 생성한 다음, 프로비저닝 API 또는 Terraform 스크립트에 사용할 수 있도록 내보낼 수 있습니다.

**참고**  
이 기능은 Grafana 워크스페이스와 프로비저닝 인터페이스 모두에서 지원됩니다.

# 알림 전달 관리
<a name="v9-alerting-managenotifications"></a>

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

알림 전달을 보내는 방법, 시간 및 위치를 선택하는 것은 알림 시스템 설정의 중요한 부분입니다. 이러한 결정은 문제를 빠르게 해결하고 중요한 부분을 놓치지 않는 역량에 직접적인 영향을 미칩니다.

첫 번째 단계로 알림 전달을 보낼 *연락 지점*을 정의하세요. 연락 지점은 일치하는 알림의 대상 세트일 수 있습니다. 알림에서 재사용 및 일관된 메시징을 위해 알림 템플릿을 연락 지점에 추가하세요.

그런 다음, *알림 정책*을 생성하세요. 이 정책은 알림이 연락 지점로 라우팅되는 위치, 시간 및 방법에 대한 규칙 세트입니다. 알림 정책에서 생성한 연락 지점 중 하나를 선택하여 알림 전달을 보낼 위치를 정의합니다. 알림 정책에 음소거 타이밍을 추가하세요. *음소거 타이밍*은 알림을 전송하지 않으려는 반복 시간 간격입니다.

알림 규칙이 평가되면 알림 눈금자는 알림 인스턴스를 Alertmanager로 전송합니다. 하나의 알림 규칙이 여러 개별 *알림 인스턴스*를 트리거할 수 있습니다.

Alertmanager는 이러한 알림 인스턴스를 수신한 다음, 음소거 타이밍을 처리하고 알림을 그룹화하며 알림 정책에 정의된 대로 연락 지점에 알림을 보냅니다.

**Topics**
+ [Alertmanager](v9-alerting-managenotifications-alertmanager.md)
+ [연락 지점 작업](v9-alerting-contact-points.md)
+ [알림 정책 작업](v9-alerting-notification-policies.md)
+ [알림 사용자 지정](v9-alerting-notifications.md)
+ [Prometheus 데이터 소스에 대한 알림 전달 무음 처리](v9-alerting-silences.md)
+ [음소거 타이밍](v9-alerting-notification-muting.md)
+ [알림 그룹별 보기 및 필터링](v9-alerting-viewfiltergroups.md)
+ [알림 오류 보기](v9-alerting-viewnotificationerrors.md)

# Alertmanager
<a name="v9-alerting-managenotifications-alertmanager"></a>

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

Alertmanager를 사용하면 알림을 빠르고 효율적으로 관리하며 대응할 수 있습니다. 이메일 또는 Slack과 같이 선택한 채널을 통해 알림을 보내 알림을 수신하고, 음소거, 억제, 그룹화 및 라우팅을 처리합니다.

Grafana에서는 Grafana Alertmanager 또는 외부 Alertmanager를 사용할 수 있습니다. 또한 여러 Alertmanager를 실행할 수 있습니다. 결정은 설정 및 알림이 생성되는 위치에 따라 달라집니다.

**Grafana Alertmanager**

Grafana Alertmanager는 Grafana 온프레미스 또는 오픈 소스를 실행하는 경우 사전 구성되고 기본적으로 선택할 수 있는 내부 Alertmanager입니다.

Grafana Alertmanager는 Grafana로부터 알림을 수신할 수 있지만 Mimir 또는 Loki와 같은 Grafana 외부에서 알림을 수신할 수는 없습니다.

**참고**  
Grafana Alertmanager에서는 금지 규칙이 지원되지 않습니다.

**외부 Alertmanager**

단일 Alertmanager를 사용하여 모든 Grafana, Loki, Mimir 및 Prometheus 알림을 수신하려면 외부 Alertmanager를 사용하도록 Grafana를 설정할 수 있습니다. Grafana 자체 내에서 이 외부 Alertmanager를 구성하고 관리할 수 있습니다.

다음은 Grafana Alertmanager 대신 자체 외부 Alertmanager를 구성하고 알림을 보낼 수 있는 두 가지 예제입니다.

1. Prometheus와 같은 다른 알림 생성기가 있기 때문에 자체 클라우드 인프라에 이미 설정한 온프레미스 Alertmanager를 보유하고 있으며, 계속 사용하려고 합니다.

1. Prometheus 온프레미스 및 호스팅 Grafana를 모두 사용하여 클라우드 인프라에서 실행되는 동일한 Alertmanager에 알림을 보내려고 합니다.

Alertmanager는 알림 연락 지점 및 알림 정책 페이지의 드롭다운 메뉴에서 볼 수 있습니다.

데이터 소스를 프로비저닝하는 경우 `jsonData` 필드에서 `handleGrafanaManagedAlerts` 플래그를 `true`로 설정하여 Grafana 관리형 알림을 이 Alertmanager로 보내세요.

# 연락 지점 작업
<a name="v9-alerting-contact-points"></a>

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

연락 지점을 사용하여 알림이 시작될 때 연락처로 알림을 보내는 방법을 정의합니다. 연락 지점에는 Amazon Simple Notification Service 또는 Slack과 같은 하나 이상의 연락 지점 통합이 있을 수 있습니다. 알림이 시작되면 연락 지점에 대해 나열된 모든 연락 지점 통합에 알림이 전송됩니다. 선택적으로 [알림 템플릿](v9-alerting-create-templates.md)을 통해 연락 지점 유형에 대한 알림 메시지를 사용자 지정합니다.

**참고**  
Grafana 관리형 알림에 대한 연락 지점을 생성 및 편집할 수 있습니다. Alertmanager 알림에 대한 연락 지점은 읽기 전용입니다.

## 연락 지점 작업
<a name="v9-alerting-working-contact-points"></a>

다음 절차에서는 연락 지점을 추가, 편집, 테스트 및 삭제하는 방법을 자세히 설명합니다.

**연락 지점을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요.

1. **연락 지점**, **연락 지점 추가**를 차례로 선택하세요.

1. **Alertmanager** 드롭다운에서 Alertmanager를 선택하세요. Grafana Alertmanager는 기본적으로 선택됩니다.

1. 연락 지점의 **이름**을 입력하세요.

1. **연락 지점 통합**에서 유형을 선택하고 해당 유형을 기반으로 필수 필드를 선택하세요. 예를 들어 Slack을 선택한 경우 Slack 채널과 연락을 받아야 하는 사용자를 입력하세요.

1. 선택한 연락 지점에 대해 사용할 수 있는 경우 원하는 **선택적 설정**을 선택하여 추가 설정을 지정하세요.

1. **알림 설정**에서 알림이 확인될 때 알림을 받지 않으려면 **확인된 메시지 비활성화**를 선택하세요.

1. 연락 지점에 더 많은 연락 지점 유형이 필요한 경우 **연락 지점 통합 추가**를 선택하고 필요한 각 연락 지점 유형에 대해 단계를 반복할 수 있습니다.

1. **연락 지점 저장**을 선택하여 변경 사항을 저장하세요.

**연락 지점을 편집하는 방법**

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 확인하세요.

1. 편집할 연락 지점을 선택한 다음, **편집** 아이콘(펜)을 선택하세요.

1. 필요한 사항을 변경한 다음, **연락 지점 저장**을 선택하여 변경 사항을 저장하세요.

연락 지점을 생성한 후 테스트 알림을 보내 올바르게 구성되었는지 확인할 수 있습니다.

**테스트 알림을 전송하는 방법**

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 여세요.

1. 테스트할 연락 지점을 선택한 다음, **편집** 아이콘(펜)을 선택하세요.

1. **테스트** 아이콘(종이 비행기)을 선택하세요.

1. 사전 정의된 테스트 알림을 보낼지 또는 **사용자 지정**을 선택하여 테스트 알림에 사용자 지정 주석과 레이블을 추가할지 선택하세요.

1. 지정된 연락 지점으로의 알림을 테스트하려면 **테스트 알림 전송**을 선택하세요.

알림 정책에서 사용하지 않는 연락 지점을 삭제할 수 있습니다.

**연락 지점을 삭제하는 방법**

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 여세요.

1. 삭제할 연락 지점을 선택한 다음, **삭제** 아이콘(휴지통)을 선택하세요.

1. 확인 대화 상자에서 **예, 삭제**를 선택하세요.

**참고**  
알림 정책에서 연락 지점을 사용 중인 경우 연락 지점을 삭제하기 전에 알림 정책을 삭제하거나 다른 연락 지점을 사용하도록 편집해야 합니다.

## 지원되는 전달자 목록
<a name="v9-alerting-contactpoint-supported-notifiers"></a>


|  이름  |  Type  | 
| --- | --- | 
| Amazon SNS  |  sns  | 
|  OpsGenie  |  opsgenie  | 
| PagerDuty  |  pagerduty  | 
| Slack  |  slack  | 
|  VictorOps  |  victorops  | 

# 알림 정책 작업
<a name="v9-alerting-notification-policies"></a>

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

알림 정책은 알림이 연락 지점으로 라우팅되는 방법을 결정합니다. 정책은 트리 구조를 사용하며, 각 정책에는 하나 이상의 하위 정책이 있을 수 있습니다. 루트 정책을 제외한 각 정책은 특정 알림 레이블과 일치할 수도 있습니다. 각 알림은 루트 정책 및 각 하위 정책에 따라 평가됩니다. 특정 정책에 대해 `Continue matching subsequent sibling nodes` 옵션을 활성화하면 하나 이상의 일치 후에도 평가가 계속됩니다. 상위 정책의 구성 설정 및 연락 지점 정보는 하위 정책과 일치하지 않는 알림의 동작을 제어합니다. 루트 정책은 특정 정책과 일치하지 않는 모든 알림을 제어합니다.

**참고**  
Grafana 관리형 알림에 대한 알림 정책을 생성 및 편집할 수 있습니다. Alertmanager 알림에 대한 알림 정책은 읽기 전용입니다.

**알림 그룹화**

그룹화는 유사한 속성의 알림 전달을 단일 깔대기로 분류합니다. 그러면 시스템의 많은 부분이 한 번에 장애가 발생하여 많은 수의 알림이 동시에 시작될 때 보다 큰 규모의 중단 중에도 알림 전달을 제어할 수 있습니다.

**그룹화 예제**

서로 다른 환경의 데이터베이스에 연결된 서비스가 100개라고 가정합니다. 이러한 서비스는 레이블 `env=environmentname`으로 구분됩니다. 서비스가 데이터베이스에 도달할 수 있는지 여부를 모니터링하기 위한 알림 규칙이 마련되어 있습니다. 알림 규칙은 `alertname=DatabaseUnreachable`이라는 알림을 생성합니다.

서비스의 절반이 더 이상 데이터베이스에 도달할 수 없는 네트워크 파티션이 발생하면 50개의 서로 다른 알림이 시작됩니다. 이 상황에서는 영향을 받는 환경 목록이 포함된 단일 페이지 알림(50페이지가 아님)을 수신하려고 합니다.

`group_by: [alertname]`로 그룹화를 구성할 수 있습니다(서비스마다 서로 다른 `env` 레이블을 사용하지 않음). 이 구성을 마련하면 Grafana에서 이 알림 규칙의 영향을 받는 모든 환경이 포함된 단일 압축 알림을 보냅니다.

**특수 그룹**

Grafana에는 두 개의 특수 그룹이 있습니다. 기본 그룹(`group_by: null`)은 *모든* 알림을 단일 그룹으로 그룹화합니다. `...`이라는 특수 레이블을 사용하여 모든 레이블별로 알림을 그룹화하고 그룹을 효과적으로 비활성화하며 각 알림을 자체 그룹으로 보낼 수도 있습니다.

## 알림 작업
<a name="v9-alerting-notification-policies-working"></a>

다음 절차에서는 알림 정책을 생성 및 관리하는 방법을 보여줍니다.

**루트 알림 정책을 편집하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요.

1. **알림 정책**을 선택하세요.

1. **Alertmanager** 드롭다운에서 편집할 Alertmanager를 선택하세요.

1. **루트 정책** 섹션에서 **편집** 아이콘(펜)을 선택하세요.

1. **기본 연락 지점**에서 알림 규칙이 특정 정책과 일치하지 않을 때 규칙에 대한 알림을 보내야 하는 연락 지점을 업데이트하세요.

1. **그룹화 기준**에서 알림을 그룹화할 기준이 되는 레이블 또는 특수 그룹을 선택하세요.

1. **타이밍 옵션**의 다음 옵션 중에서 선택하세요.
   + **그룹 대기** - 초기 알림을 전송하기 전에 동일한 그룹의 알림을 버퍼링하기 위해 대기하는 시간. 기본값은 30초입니다.
   + **그룹 간격** - 그룹에 대한 두 알림 사이의 최소 시간 간격. 기본값은 5분입니다.
   + **반복 간격** - 그룹에 새 알림이 추가되지 않은 경우 알림을 다시 보내기 전 최소 시간 간격. 기본값은 4시간입니다.

1. **저장**을 선택하여 변경 사항을 저장합니다.

**최상위 수준의 새 정책을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요.

1. **알림 정책**을 선택하세요.

1. **Alertmanager** 드롭다운에서 편집할 Alertmanager를 선택하세요.

1. **특정 라우팅** 섹션에서 **새 특정 정책**을 선택하세요.

1. **일치하는 레이블** 섹션에서 일치하는 알림 레이블을 하나 이상 추가하세요. 레이블 일치에 대한 자세한 내용은 이 주제의 뒷부분에 나와 있습니다.

1. **연락 지점**에서 알림이 이 특정 정책과 일치하는 경우 알림을 전송할 연락 지점을 추가합니다. 중첩된 정책은 이 연락 지점을 재정의합니다.

1. 선택적으로 알림이 현재 정책과 일치한 후에도 계속 형제 정책 일치를 수행하려면 **후속 형제 노드 연속 매칭**을 활성화합니다. 이 옵션을 활성화하면 동일한 알림에 대해 둘 이상의 알림을 받을 수 있습니다.

1. 선택적으로 **그룹화 재정의**를 선택하여 루트 정책과 다른 그룹화를 지정합니다.

1. 선택적으로 그룹 알림 정책의 타이밍 옵션을 재정의하려면 **일반 타이밍 재정의**를 선택하세요.

1. 변경 사항을 저장하려면 **정책 저장**을 선택합니다.

**중첩된 정책을 추가하는 방법**

1. 중첩된 정책을 생성할 특정 정책을 확장하세요.

1. **중첩된 정책 추가**를 선택하고 최상위 수준 특정 정책을 추가할 때와 같이 세부 정보를 추가하세요.

1. 변경 사항을 저장하려면 **정책 저장**을 선택합니다.

**특정 정책을 편집하는 방법**

1. **알림** 페이지에서 **알림 정책**을 선택하여 기존 정책을 나열하는 페이지를 엽니다.

1. 편집할 구성 정책을 선택하고 **편집** 아이콘(펜)을 선택하세요.

1. 최상위 수준별 정책을 추가할 때와 같이 변경하세요.

1. **정책 저장**을 선택합니다.

**정책 검색**

*레이블 매처* 또는 *연락 지점*별로 정책 트리 내에서 검색할 수 있습니다.
+ 연락 지점별로 검색하려면 **연락 지점별 검색** 필드에 연락 지점의 이름 일부 또는 전체를 입력하세요.
+ 레이블로 검색하려면 **레이블별 검색** 필드에 유효한 레이블 매처를 입력하세요. 쉼표로 구분하여 여러 매처를 입력할 수 있습니다. 예를 들어 유효한 매처 입력은 `severity=high, region=~EMEA|NA`일 수 있습니다.
**참고**  
레이블로 검색할 때 일치하는 모든 정책은 정확히 일치합니다. 부분 일치 및 정규식 스타일의 일치는 지원되지 않습니다.

**레이블 일치 작동 방식**

알림의 레이블이 정책에 지정된 모든 *일치 레이블*과 일치하는 경우 정책은 알림과 일치합니다.
+ **레이블** - 일치시킬 레이블의 이름. 알림의 레이블 이름과 정확히 일치해야 합니다.
+ **연산자** - 레이블 값을 일치 레이블 값과 비교하는 데 사용되는 연산자. 사용 가능한 연산자는 다음과 같습니다.
  + `=` 값이 제공된 문자열과 정확히 일치하는 레이블을 선택합니다.
  + `!=` 값이 제공된 문자열과 일치하지 않는 레이블을 선택합니다.
  + `=~` 값이 제공된 문자열의 정규식 해석 값과 일치하는 레이블을 선택합니다(제공된 문자열은 정규식으로 해석됨).
  + `!=` 제공된 정규식과 일치하지 않는 레이블을 선택합니다.
+ **값** - 레이블 값과 일치하는 값. 선택한 연산자에 따라 문자열 또는 정규식으로 일치할 수 있습니다.

# 알림 사용자 지정
<a name="v9-alerting-notifications"></a>

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

알림 템플릿을 사용하여 알림을 사용자 지정합니다.

알림 템플릿을 사용하여 알림에서 메시지의 제목, 메시지 및 형식을 변경할 수 있습니다.

알림 템플릿은 이메일 또는 Slack과 같은 특정 연락 지점 통합과 연결되지 않습니다. 그러나 서로 다른 연락 지점 통합을 위한 별도의 알림 템플릿을 생성하도록 선택할 수 있습니다.

알림 템플릿을 사용하여 다음을 수행할 수 있습니다.
+ 요약, 설명, 레이블 및 주석, 값 및 링크를 포함하여 알림에서 정보를 추가, 제거 또는 재정렬합니다.
+ 텍스트를 굵은 기울임꼴 서식으로 지정하고 줄 바꿈 추가 또는 제거

알림 템플릿을 사용하여 다음을 수행할 수 없습니다.
+ Slack 및 Microsoft Teams와 같은 인스턴트 메시징 서비스의 알림 설계 변경

**Topics**
+ [Go의 템플릿 지정 언어 사용](v9-alerting-notifications-go-templating.md)
+ [알림 템플릿 생성](v9-alerting-create-templates.md)
+ [템플릿 참조](v9-alerting-template-reference.md)

# Go의 템플릿 지정 언어 사용
<a name="v9-alerting-notifications-go-templating"></a>

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

알림 템플릿을 Go의 템플릿 지정 언어인 [text/template](https://pkg.go.dev/text/template)으로 작성합니다.

이 섹션에서는 Go의 템플릿 지정 언어에 대한 개요와 text/template에서 템플릿을 작성하는 방법을 제공합니다.

## 점
<a name="v9-go-dot"></a>

text/template에는 점(dot)이라는 특수 커서가 있습니다(`.`로 씀). 이 커서는 사용되는 템플릿의 위치에 따라 값이 변경되는 변수로 간주할 수 있습니다. 예를 들어 알림 템플릿의 시작 부분에서 `.`은 `ExtendedData` 객체를 참조합니다. 여기에서는 `Alerts`, `Status`, `GroupLabels`, `CommonLabels`, `CommonAnnotations`, `ExternalURL`을 포함하여 여러 필드를 포함합니다. 그러나 점은 목록의 `range`에서 사용할 때, `with`에서 사용할 때 또는 다른 템플릿에서 사용할 기능 템플릿을 작성할 때 다른 항목을 참조할 수 있습니다. [알림 템플릿 생성](v9-alerting-create-templates.md)에서 이에 대한 예제를 확인할 수 있으며, [템플릿 참조](v9-alerting-template-reference.md)에서 모든 데이터 및 함수를 확인할 수 있습니다.

## 여는 태그 및 닫는 태그
<a name="v9-go-openclosetags"></a>

text/template에서 템플릿은 템플릿이 변수를 인쇄하는지 여부와 if 문과 같이 제어 구조를 실행하는지 여부에 관계없이 `{{`로 시작하고 `}}`로 끝납니다. Jinja(변수를 인쇄할 때 `{{` 및 `}}`를 사용하고 제어 구조에서 `{%` 및 `%}`를 사용함)와 같은 다른 템플릿 지정 언어와는 다릅니다.

## 인쇄
<a name="v9-go-print"></a>

무언가의 값을 인쇄하려면 `{{` 및 `}}`를 사용합니다. 점 값, 점 필드, 함수 결과 및 [변수](#v9-go-variables) 값을 인쇄할 수 있습니다. 예를 들어 점이 `ExtendedData`를 참조하는 `Alerts` 필드를 인쇄하려면 다음과 같이 작성합니다.

```
{{ .Alerts }}
```

## 알림에 대한 반복
<a name="v9-go-iterate-alerts"></a>

알림에 대한 모든 정보가 아닌 각 알림의 레이블만 인쇄하려면 `range`를 사용하여 `ExtendedData`에서 알림을 반복할 수 있습니다.

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
```

범위 내에서 점은 더 이상 `ExtendedData`를 참조하지 않고 `Alert`를 참조합니다. `{{ .Labels }}`를 사용하여 각 알림의 레이블을 인쇄할 수 있습니다. `{{ range .Alerts }}`에서 알림 목록의 현재 알림을 참조하도록 점을 변경하기 때문에 이러한 방식이 작동합니다. 범위가 완성되면 범위가 시작되기 전에 사용했던 값으로 점이 재설정됩니다(이 예제에서 `ExtendedData`).

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
{{/* does not work, .Labels does not exist here */}}
{{ .Labels }}
{{/* works, cursor was reset */}}
{{ .Status }}
```

## 주석 및 레이블에 대한 반복
<a name="v9-go-iterate-labels"></a>

`The name of the label is $name, and the value is $value` 형식으로 각 알림의 레이블을 인쇄하도록 템플릿을 작성합니다. 여기서 `$name` 및 `$value`에는 각 레이블의 이름 및 값이 포함됩니다.

이전 예제와 마찬가지로 점을 사용하여 `.Alerts`에서 알림에 대해 반복합니다. 이때 점은 알림 목록에서 현재 알림을 참조합니다. 그리고 정렬된 레이블에서 두 번째 범위를 사용합니다. 이때 두 번째로 현재 레이블을 참조할 때 점이 업데이트됩니다. 두 번째 범위 내에서 `.Name` 및 `.Value`를 사용하여 각 레이블의 이름 및 값을 인쇄합니다.

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
The name of the label is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ range .Annotations.SortedPairs }}
The name of the annotation is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ end }}
```

## If 문
<a name="v9-go-if"></a>

템플릿에서 if 문을 사용할 수 있습니다. 예를 들어 `.Alerts`에 알림이 없는 경우 `There are no alerts`를 인쇄하려면 다음을 작성합니다.

```
{{ if .Alerts }}
There are alerts
{{ else }}
There are no alerts
{{ end }}
```

## With
<a name="v9-go-with"></a>

With는 if 문과 유사하지만, if 문과 달리 `with`에서는 with에서의 값을 참조하기 위해 점을 업데이트합니다.

```
{{ with .Alerts }}
There are {{ len . }} alert(s)
{{ else }}
There are no alerts
{{ end }}
```

## 변수
<a name="v9-go-variables"></a>

text/template의 변수는 템플릿 내에서 생성해야 합니다. 예를 들어 점의 현재 값을 사용해 `$variable` 변수를 생성하려면 다음을 작성합니다.

```
{{ $variable := . }}
```

`with` 또는 범위 내에서 `$variable`을 사용할 수 있으며, 이는 점의 현재 값이 아니라 변수가 정의된 시점에 점의 값을 참조합니다.

예를 들어 두 번째 범위에서 `{{ .Labels }}`를 사용하는 템플릿은 작성할 수 없습니다. 여기서 점은 현재 알림이 아닌 현재 레이블을 참조하기 때문입니다.

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* does not work because in the second range . is a label not an alert */}}
There are {{ len .Labels }}
{{ end }}
{{ end }}
```

첫 번째 범위와 두 번째 범위 앞에서 `$alert` 변수를 정의하여 이 문제를 해결할 수 있습니다.

```
{{ range .Alerts }}
{{ $alert := . }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* works because $alert refers to the value of dot inside the first range */}}
There are {{ len $alert.Labels }}
{{ end }}
{{ end }}
```

## 인덱스가 있는 범위
<a name="v9-go-rangeindex"></a>

범위 시작 위치에서 인덱스 및 값 변수를 정의하여 범위 내 각 알림의 인덱스를 가져올 수 있습니다.

```
{{ $num_alerts := len .Alerts }}
{{ range $index, $alert := .Alerts }}
This is alert {{ $index }} out of {{ $num_alerts }}
{{ end }}
```

## 템플릿 정의
<a name="v9-go-define"></a>

`define` 및 템플릿 이름(큰따옴표로 묶음)을 다른 템플릿 내에서 사용할 수 있는 템플릿을 정의할 수 있습니다. `__subject`, `__text_values_list`, `__text_alert_list`, `default.title`, `default.message`와 같은 기본 템플릿을 포함하여 다른 템플릿과 동일한 이름의 템플릿을 정의해서는 안 됩니다. 템플릿이 기본 템플릿과 동일한 이름으로 생성되었거나 다른 알림 템플릿의 템플릿인 경우 Grafana는 두 템플릿 중 하나를 사용할 수 있습니다. Grafana는 이름이 같은 템플릿이 두 개 이상 있는 경우 이를 금지하거나 오류 메시지를 표시하지 않습니다.

```
{{ define "print_labels" }}
{{ end }}
```

## 템플릿 임베드
<a name="v9-go-embed"></a>

`template`, 템플릿 이름(큰따옴표로 묶음), 템플릿에 전달해야 하는 커서를 사용하여 템플릿 내에서 정의된 템플릿을 임베드할 수 있습니다.

```
{{ template "print_labels" . }}
```

## 템플릿에 데이터 전달
<a name="v9-go-passdata"></a>

템플릿 내에서 점은 템플릿에 전달되는 값을 참조합니다.

예를 들어 템플릿에 실행 알림 목록이 전달되면 점에서는 해당 실행 알림 목록을 나타냅니다.

```
{{ template "print_alerts" .Alerts }}
```

템플릿에 알림에 대해 정렬된 레이블이 전달되면 점은 정렬된 레이블 목록을 참조합니다.

```
{{ template "print_labels" .SortedLabels }}
```

재사용 가능한 템플릿을 작성할 때 유용합니다. 예를 들어 모든 알림을 인쇄하려면 다음을 작성할 수 있습니다.

```
{{ template "print_alerts" .Alerts }}
```

그런 다음, 실행 알림만 인쇄하려면 다음을 작성하면 됩니다.

```
{{ template "print_alerts" .Alerts.Firing }}
```

`.Alerts` 및 `.Alerts.Firing`이 모두 알림 목록이므로 이 방식이 가능합니다.

```
{{ define "print_alerts" }}
{{ range . }}
{{ template "print_labels" .SortedLabels }}
{{ end }}
{{ end }}
```

## 설명
<a name="v9-go-comments"></a>

`{{/*` 및 `*/}}`를 사용하여 주석을 추가할 수 있습니다.

```
{{/* This is a comment */}}
```

설명에 줄 바꿈을 추가하지 못하도록 하려면 다음을 사용합니다.

```
{{- /* This is a comment with no leading or trailing line breaks */ -}}
```

## 들여쓰기
<a name="v9-go-indentation"></a>

탭과 공백, 줄 바꿈에서 모두 들여쓰기를 사용하여 템플릿의 가독성을 개선할 수 있습니다.

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

그러나 템플릿의 들여쓰기는 텍스트에도 표시됩니다. 다음으로 이를 제거하는 방법을 살펴봅니다.

## 공백 및 줄 바꿈 제거
<a name="v9-go-removespace"></a>

text/template에서 `{{-` 및 `-}}`를 사용하여 선행 및 후행 공백과 줄 바꿈을 제거합니다.

예를 들어 들여쓰기 및 줄 바꿈을 사용하여 템플릿의 가독성을 높이는 경우:

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

들여쓰기 및 줄 바꿈도 텍스트에 표시됩니다.

```
    alertname = "Test"

    grafana_folder = "Test alerts"
```

각 범위의 시작 위치에서 `}}`를 `-}}`로 변경하여 텍스트에서 들여쓰기 및 줄 바꿈을 제거할 수 있습니다.

```
{{ range .Alerts -}}
  {{ range .Labels.SortedPairs -}}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

이제 템플릿의 들여쓰기 및 줄 바꿈은 텍스트에 없습니다.

```
alertname = "Test"
grafana_folder = "Test alerts"
```

# 알림 템플릿 생성
<a name="v9-alerting-create-templates"></a>

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

연락 지점으로 전송할 재사용 가능한 알림 템플릿을 생성합니다.

알림 템플릿에 하나 이상의 템플릿을 추가할 수 있습니다.

알림 템플릿 이름은 고유해야 합니다. 동일한 알림 템플릿 또는 다른 알림 템플릿에서 이름이 같은 두 개의 템플릿을 사용할 수 없습니다. `__subject`, `__text_values_list`, `__text_alert_list`, `default.title`, `default.message`와 같이 기본 템플릿과 이름이 같은 템플릿을 정의하지 마세요.

연락 지점 탭에서 알림 템플릿 목록을 볼 수 있습니다.

## 알림 템플릿 생성
<a name="v9-alerting-creating-templates"></a>

**알림 템플릿을 생성하는 방법**

1. **템플릿 추가**를 클릭하세요.

1. `email.subject`와 같은 알림 템플릿의 이름을 선택하세요.

1. 콘텐츠 필드에서 템플릿의 콘텐츠를 작성하세요.

   예제:

   ```
   {{ if .Alerts.Firing -}}
      {{ len .Alerts.Firing }} firing alerts
      {{ end }}
      {{ if .Alerts.Resolved -}}
      {{ len .Alerts.Resolved }} resolved alerts
      {{ end }}
   ```

1. 저장을 클릭합니다.

   `{{ define "email.subject" }}`(여기서 `email.subject`는 템플릿의 이름임) 및 `{{ end }}`는 콘텐츠의 시작과 끝에 자동으로 추가됩니다.

**둘 이상의 템플릿이 포함된 알림 템플릿을 생성하는 방법:**

1. **템플릿 추가**를 클하세요.

1. 전체 알림 템플릿의 이름을 입력하세요. 예를 들어 `email`입니다.

1. 각 템플릿의 시작과 끝에 있는 `{{ define "name-of-template" }}` 및 `{{ end }}`를 포함하여 콘텐츠 필드에서 각 템플릿을 작성하세요. 알림 템플릿의 각 템플릿에 대해 설명이 포함된 이름(예: `email.subject` 또는 `email.message`)을 사용할 수 있습니다. 이 경우 위에 입력한 알림 템플릿의 이름을 재사용하지 마세요.

   다음 섹션에서는 생성할 수 있는 템플릿에 대한 자세한 예제를 보여줍니다.

1. 저장을 클릭합니다.

## 이메일 제목에 대한 템플릿 생성
<a name="v9-alerting-create-template-subject"></a>

이 예제와 같이 실행 알림 및 해결된 알림 수가 포함된 이메일 제목에 대한 템플릿을 생성합니다.

```
1 firing alerts, 0 resolved alerts
```

**이메일 제목에 대한 템플릿을 생성하는 방법**

1. 다음 콘텐츠로 `email.subject`라는 템플릿을 생성하세요.

   ```
   {{ define "email.subject" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. `template` 키워드를 **제목** 필드에 입력하여 연락 지점 통합을 생성할 때 템플릿을 사용하세요.

   ```
   {{ template "email.subject" . }}
   ```

## 이메일 메시지에 대한 템플릿 생성
<a name="v9-alerting-create-template-message"></a>

이 예제와 같이 모든 실행 알림 및 해결된 알림의 요약이 포함된 이메일 메시지 템플릿을 생성합니다.

```
There are 2 firing alerts, and 1 resolved alerts

Firing alerts:

- alertname=Test 1 grafana_folder=GrafanaCloud has value(s) B=1
- alertname=Test 2 grafana_folder=GrafanaCloud has value(s) B=2

Resolved alerts:

- alertname=Test 3 grafana_folder=GrafanaCloud has value(s) B=0
```

**이메일 메시지에 대한 템플릿을 생성하는 방법**

1. 콘텐츠에 두 개의 템플릿(`email.message_alert` 및 `email.message`)을 포함하는 `email` 알림 템플릿을 생성하세요.

   `email.message_alert` 템플릿은 각 실행 알림과 해결된 알림에 대한 레이블 및 값을 인쇄하는 데 사용되고, `email.message` 템플릿은 이메일 구조를 포함합니다.

   ```
   {{- define "email.message_alert" -}}
   {{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s)
   {{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }}
   {{- end -}}
   
   {{ define "email.message" }}
   There are {{ len .Alerts.Firing }} firing alerts, and {{ len .Alerts.Resolved }} resolved alerts
   
   {{ if .Alerts.Firing -}}
   Firing alerts:
   {{- range .Alerts.Firing }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ if .Alerts.Resolved -}}
   Resolved alerts:
   {{- range .Alerts.Resolved }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ end }}
   ```

1. `template` 키워드를 **텍스트 본문** 필드에 입력하여 연락 지점 통합을 생성할 때 템플릿을 사용하세요.

   ```
   {{ template "email.message" . }}
   ```

## Slack 메시지 제목에 대한 템플릿 생성
<a name="v9-alerting-create-template-slack-title"></a>

다음 예제와 같이 실행 알림 및 해결된 알림 수를 포함하는 Slack 메시지의 제목에 대한 템플릿을 생성합니다.

```
1 firing alerts, 0 resolved alerts
```

**Slack 메시지 제목에 대한 템플릿을 생성하는 방법**

1. 다음 콘텐츠로 `slack.title`라는 템플릿을 생성하세요.

   ```
   {{ define "slack.title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. `template` 키워드를 **제목** 필드에 입력하여 연락 지점 통합을 생성할 때 템플릿을 사용하세요.

   ```
   {{ template "slack.title" . }}
   ```

## Slack 메시지 콘텐츠에 대한 템플릿 생성
<a name="v9-alerting-create-template-slack-message"></a>

레이블, 주석 및 대시보드 URL을 포함하여 모든 실행 알림 및 해결된 알림에 대한 설명이 포함된 Slack 메시지의 콘텐츠에 대한 템플릿을 생성합니다.

```
1 firing alerts:

[firing] Test1
Labels:
- alertname: Test1
- grafana_folder: GrafanaCloud
Annotations:
- description: This is a test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1

1 resolved alerts:

[firing] Test2
Labels:
- alertname: Test2
- grafana_folder: GrafanaCloud
Annotations:
- description: This is another test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1
```

**Slack 메시지 콘텐츠에 대한 템플릿을 생성하는 방법**

1. 콘텐츠에 두 개의 템플릿(`slack.print_alert` 및 `slack.message`)을 포함하는 `slack` 템플릿을 생성하세요.

   `slack.print_alert` 템플릿은 레이블, 주석 및 DashboardURL을 인쇄하는 데 사용되는 반면 `slack.message` 템플릿에는 알림 구조가 포함되어 있습니다.

   ```
   {{ define "slack.print_alert" -}}
   [{{.Status}}] {{ .Labels.alertname }}
   Labels:
   {{ range .Labels.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ if .Annotations -}}
   Annotations:
   {{ range .Annotations.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ end -}}
   {{ if .DashboardURL -}}
     Go to dashboard: {{ .DashboardURL }}
   {{- end }}
   {{- end }}
   
   {{ define "slack.message" -}}
   {{ if .Alerts.Firing -}}
   {{ len .Alerts.Firing }} firing alerts:
   {{ range .Alerts.Firing }}
   {{ template "slack.print_alert" . }}
   {{ end -}}
   {{ end }}
   {{ if .Alerts.Resolved -}}
   {{ len .Alerts.Resolved }} resolved alerts:
   {{ range .Alerts.Resolved }}
   {{ template "slack.print_alert" .}}
   {{ end -}}
   {{ end }}
   {{- end }}
   ```

1. `template` 키워드를 **텍스트 본문** 필드에 입력하여 연락 지점 통합을 생성할 때 템플릿을 사용하세요.

   ```
   {{ template "slack.message" . }}
   ```

## 공유 템플릿으로 이메일 및 Slack 모두 템플릿 지정
<a name="v9-alerting-create-shared-templates"></a>

이메일 및 Slack과 같이 각 연락 지점에 대해 별도의 알림 템플릿을 생성하는 대신 동일한 템플릿을 공유할 수 있습니다.

예를 들어 이 제목의 이메일과 이 `1 firing alerts, 0 resolved alerts` 제목의 Slack 메시지를 보내려면 공유 템플릿을 생성할 수 있습니다.

**공유 템플릿을 생성하는 방법**

1. 다음 콘텐츠로 `common.subject_title`라는 템플릿을 생성하세요.

   ```
   {{ define "common.subject_title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. 이메일의 경우 이메일 연락 지점 통합의 제목 필드에서 템플릿을 실행하세요.

   ```
   {{ template "common.subject_title" . }}
   ```

1. Slack의 경우 Slack 연락 지점 통합의 제목 필드에서 템플릿을 실행하세요.

   ```
   {{ template "common.subject_title" . }}
   ```

## 알림 템플릿 사용
<a name="v9-alerting-use-notification-templates"></a>

연락 지점의 템플릿을 사용하여 알림을 사용자 지정합니다.

**연락 지점을 생성할 때 템플릿을 사용하는 방법**

1. **알림** 메뉴에서 **연락 지점** 탭을 선택하여 기존 연락처 목록을 확인하세요.

1. **연락 지점 추가**를 선택하세요. 또는 편집하려는 연락 지점 옆에 있는 **편집** 아이콘(펜)을 선택하여 기존 연락 지점을 편집할 수 있습니다.

1. **메시지** 또는 **제목**과 같이 하나 이상의 필드에 사용하려는 템플릿을 입력하세요. 템플릿을 입력하려면 `{{ template "template_name" . }}` 양식을 사용하여 *template\$1name*을 사용하려는 템플릿 이름으로 바꾸세요.

1. **연락 지점 저장**을 클릭하세요.

# 템플릿 참조
<a name="v9-alerting-template-reference"></a>

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

이 섹션에서는 템플릿을 생성하기 위한 참조 정보를 제공합니다.

## 템플릿 데이터
<a name="v9-alerting-template-data"></a>

다음 데이터가 메시지 템플릿에 전달됩니다.


| 이름 | Type | 참고 | 
| --- | --- | --- | 
|  `Receiver`  |  문자열  |  알림이 전송되는 연락 지점 이름.  | 
|  `Status`  |  문자열  |  하나 이상의 알림이 실행 중인 경우 실행이고, 그렇지 않으면 해결됨 상태입니다.  | 
|  `Alerts`  |  Alert  |  이 알림에 포함된 알림 객체 목록(아래 참조).  | 
|  `GroupLabels`  |  KeyValue  |  이러한 알림이 그룹화된 레이블.  | 
|  `CommonLabels`  |  KeyValue  |  이 알림에 포함된 모든 알림에 공통된 레이블.  | 
|  `CommonAnnotations`  |  KeyValue  |  이 알림에 포함된 모든 알림에 공통된 주석.  | 
|  `ExternalURL`  |  문자열  |  알림을 전송한 Grafana로 돌아가는 링크. 외부 Alertmanager를 사용하는 경우 이 Alertmanager로 돌아가는 링크.  | 

`Alerts` 유형은 반환된 알림을 필터링하기 위한 두 가지 함수를 노출합니다.
+ `Alerts.Firing` - 실행 알림 목록을 반환합니다.
+ `Alerts.Resolved` - 해결된 알림 목록을 반환합니다.

**알림(유형)**

알림 유형에는 다음 데이터가 포함됩니다.


| 이름 | Type | 참고 | 
| --- | --- | --- | 
|  Status  |  문자열  |  `firing` 또는 `resolved`  | 
|  레이블  |  KeyValue  |  알림에 연결된 레이블 세트.  | 
|  Annotations  |  KeyValue  |  알림에 연결된 주석 세트.  | 
| 값 | KeyValue | 클래식 조건을 포함한 모든 표현식의 값 | 
|  StartsAt  |  time.Time  |  알림 실행이 시작되는 시간.  | 
|  EndsAt  |  time.Time  |  알림의 종료 시간을 알고 있는 경우에만 설정합니다. 그렇지 않으면 마지막 알림이 수신된 이후부터 구성 가능한 제한 시간으로 설정됩니다.  | 
|  GeneratorURL  |  문자열  |  Grafana 또는 외부 Alertmanager에 대한 백 링크.  | 
|  SilenceURL  |  문자열  |  알림을 음소거하는 링크(이 알림에 대한 레이블이 미리 채워짐). Grafana 관리형 알림에만 적용됩니다.  | 
|  DashboardURL  |  문자열  |  알림 규칙이 하나에 속하는 경우 Grafana 대시보드에 대한 링크. Grafana 관리형 알림에만 적용됩니다.  | 
|  PanelURL  |  문자열  |  알림 규칙이 하나에 속하는 경우 Grafana 대시보드 패널에 대한 링크. Grafana 관리형 알림에만 적용됩니다.  | 
|  지문  |  문자열  |  알림을 식별하는 데 사용할 수 있는 지문.  | 
|  ValueString  |  문자열  |  알림에서 축소된 각 표현식의 레이블과 값을 포함하는 문자열.  | 

 **ExtendedData**

ExtendedData 객체는 다음 속성을 포함합니다.


| 이름 | 종류 | 설명 | 예제 | 
| --- | --- | --- | --- | 
|  수신기  |  `string`  |  알림을 보내는 연락 지점의 이름.  |  `{{ .Receiver }}`  | 
|  Status  |  `string`  |  상태가 `firing if at least one alert is firing, otherwise resolved.`입니다.  |  `{{ .Status }}`  | 
|  알림  |  `[]Alert`  |  이 알림에서 모든 실행 알림과 해결된 알림 목록.  |  `There are {{ len .Alerts }} alerts`  | 
|  실행 알림  |  `[]Alert`  |  이 알림에서 모든 실행 알림 목록.  |  `There are {{ len .Alerts.Firing }} firing alerts`  | 
|  해결된 알림  |  `[]Alert`  |  이 알림에서 모든 해결된 알림 목록.  |  `There are {{ len .Alerts.Resolved }} resolved alerts`  | 
|  GroupLabels  |  `KeyValue`  |  이 알림에서 이러한 알림을 그룹화하는 레이블.  |  `{{ .GroupLabels }}`  | 
|  CommonLabels  |  `KeyValue`  |  이 알림에서 모든 알림에 공통된 레이블.  |  `{{ .CommonLabels }}`  | 
|  CommonAnnotations  |  `KeyValue`  |  이 알림에서 모든 알림에 공통된 주석.  |  `{{ .CommonAnnotations }}`  | 
|  ExternalURL  |  `string`  |  이 알림을 보낸 Grafana 워크스페이스 또는 Alertmanager에 대한 링크.  |  `{{ .ExternalURL }}`  | 

**KeyValue 유형**

`KeyValue` 유형은 레이블과 주석을 나타내는 키/값 문자열 페어 세트입니다.

`KeyValue`로 저장된 데이터에 대한 직접 액세스 외에도 데이터를 정렬, 제거 및 변환하는 방법도 있습니다.


| 이름 | 인수 | 반환 | 참고 | 예제 | 
| --- | --- | --- | --- | --- | 
|  SortedPairs  |    |  키 및 값 문자열 페어의 정렬된 목록  |    | `{{ .Annotations.SortedPairs }}` | 
|  제거  |  []string  |  KeyValue  |  지정된 키 없이 키/값 맵의 사본을 반환합니다.  | `{{ .Annotations.Remove "summary" }}` | 
|  이름  |    |  []string  |  레이블 이름 목록  | `{{ .Names }}` | 
|  값  |    |  []string  |  레이블 값 목록  | `{{ .Values }}` | 

**Time**

시간은 Go [https://pkg.go.dev/time#Time](https://pkg.go.dev/time#Time) 패키지에서 가져옵니다. 여러 형식으로 시간을 인쇄할 수 있습니다. 예를 들어, `Monday, 1st January 2022 at 10:00AM` 형식으로 알림이 실행된 시간을 인쇄하려면 다음 템플릿을 작성합니다.

```
{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}
```

[여기](https://pkg.go.dev/time#pkg-constants)에서 Go의 시간 형식에 대한 참조를 찾을 수 있습니다.

## 템플릿 함수
<a name="v9-alerting-template-functions"></a>

템플릿 함수를 사용하여 레이블 및 주석을 처리해 동적 알림을 생성할 수 있습니다. 다음 함수를 사용할 수 있습니다.


| 이름 | 인수 유형 | 반환 타입 | 설명 | 
| --- | --- | --- | --- | 
|  `humanize`  |  숫자 또는 문자열  |  문자열  |  지표 접두사를 사용하여 숫자를 더 읽기 쉬운 형식으로 변환합니다.  | 
|  `humanize1024`  |  숫자 또는 문자열  |  문자열  |  humanize와 비슷하지만 1000이 아닌 1024를 밑으로 사용합니다.  | 
|  `humanizeDuration`  |  숫자 또는 문자열  |  문자열  |  기간(초 단위)을 더 읽기 쉬운 형식으로 변환합니다.  | 
|  `humanizePercentage`  |  숫자 또는 문자열  |  문자열  |  비율 값을 100의 분율로 변환합니다.  | 
|  `humanizeTimestamp`  |  숫자 또는 문자열  |  문자열  |  Unix 타임스탬프(초 단위)를 더 읽기 쉬운 형식으로 변환합니다.  | 
|  `title`  |  문자열  |  문자열  |  strings.Title, 각 단어의 첫 번째 문자를 대문자로 표시합니다.  | 
|  `toUpper`  |  문자열  |  문자열  |  strings.ToUpper, 모든 문자를 대문자로 변환합니다.  | 
|  `toLower`  |  문자열  |  문자열  |  strings.ToLower, 모든 문자를 소문자로 변환합니다.  | 
|  `match`  |  패턴, 텍스트  |  부울  |  regexp.MatchString 고정되지 않은 정규식 일치를 테스트합니다.  | 
|  `reReplaceAll`  |  패턴, 교체, 텍스트  |  문자열  |  Regexp.ReplaceAllString Regexp 대체(고정되지 않음).  | 
|  `graphLink`  |  문자열 - `expr` 및 `datasource` 필드가 있는 JSON 객체  |  문자열  |  지정된 표현식 및 데이터 소스에 대한 탐색의 그래픽 보기 경로를 반환합니다.  | 
|  `tableLink`  |  문자열 - `expr` 및 `datasource` 필드가 있는 JSON 객체  |  문자열  |  지정된 표현식 및 데이터 소스에 대한 탐색의 테이블 형식 보기 경로를 반환합니다.  | 
|  `args`  |  []interface\$1\$1  |  map[string]interface\$1\$1  |  객체 목록을 arg0, arg1과 같은 키가 있는 맵으로 변환합니다. 이 함수를 사용하여 여러 인수를 템플릿에 전달합니다.  | 
|  `externalURL`  |  없음  |  문자열  |  외부 URL을 나타내는 문자열을 반환합니다.  | 
|  `pathPrefix`  |  없음  |  문자열  |  외부 URL의 경로를 반환합니다.  | 

다음 표에는 각 함수 사용 예제가 나와 있습니다.


| 함수 | TemplateString | Input | 예상 | 
| --- | --- | --- | --- | 
|  인간화  |  \$1 humanize \$1value \$1  |  1234567.0  |  1.235M  | 
|  humanize1024  |  \$1 humanize1024 \$1value \$1  |  1048576.0  |  1Mi  | 
|  humanizeDuration  |  \$1 humanizeDuration \$1value \$1  |  899.99  |  14m 59s  | 
|  humanizePercentage  |  \$1 humanizePercentage \$1value \$1  |  0.1234567  |  12.35%  | 
|  humanizeTimestamp  |  \$1 humanizeTimestamp \$1value \$1  |  1435065584.128  |  2015-06-23 13:19:44.128 \$10000 UTC  | 
|  제목  |  \$1 \$1value \$1 title \$1  |  aa bB CC  |  Aa Bb Cc  | 
|  toUpper  |  \$1 \$1value \$1 toUpper \$1  |  aa bB CC  |  AA BB CC  | 
|  toLower  |  \$1 \$1value \$1 toLower \$1  |  aa bB CC  |  aa bb cc  | 
|  match  |  \$1 match "a\$1" \$1labels.instance \$1  |  aa  |  true  | 
|  reReplaceAll  |  \$1\$1 reReplaceAll "localhost:(.\$1)" "my.domain:\$11" \$1labels.instance \$1\$1  |  localhost:3000  |  my.domain:3000  | 
|  graphLink  |  \$1\$1 graphLink "\$1\$1"expr\$1": \$1"up\$1", \$1"datasource\$1": \$1"gdev-prometheus\$1"\$1" \$1\$1  |    |  /explore?left=["now-1h","now","gdev-prometheus",\$1"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true\$1]  | 
|  tableLink  |  \$1\$1 tableLink "\$1\$1"expr\$1":\$1"up\$1", \$1"datasource\$1":\$1"gdev-prometheus\$1"\$1" \$1\$1  |    |  /explore?left=["now-1h","now","gdev-prometheus",\$1"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false\$1]  | 
|  args  |  \$1\$1define "x"\$1\$1\$1\$1.arg0\$1\$1 \$1\$1.arg1\$1\$1\$1\$1end\$1\$1\$1\$1template "x" (args 1 "2")\$1\$1  |    |  1 2  | 
|  externalURL  |  \$1 externalURL \$1  |    |  http://localhost/path/prefix  | 
|  pathPrefix  |  \$1 pathPrefix \$1  |    |  /path/prefix  | 

# Prometheus 데이터 소스에 대한 알림 전달 무음 처리
<a name="v9-alerting-silences"></a>

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

외부 Alertmanager 데이터 소스(Amazon Managed Service for Prometheus 포함)의 경우 *무음*으로 알림 전달을 억제할 수 있습니다. 무음은 알림 생성만 중지합니다. 무음은 알림 규칙이 평가되는 것을 방지하지 않으며 사용자 인터페이스에 인스턴스 알림이 표시되는 것도 중지하지 않습니다. 알림을 무음으로 설정한 경우 알림이 억제되는 기간을 지정합니다.

외부 Alertmanager 데이터 소스에 대해 무음을 구성할 수 있습니다.

**참고**  
정기적인 시간 간격(예: 정기 유지 관리 기간) 또는 다른 데이터 소스에 대해 알림 전달을 억제하려면 무음 대신 [음소거 타이밍](v9-alerting-notification-muting.md)을 사용합니다.

**무음을 추가하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요.

1. **무음**을 선택하여 기존 [연락 지점 작업](v9-alerting-contact-points.md)이 나열된 페이지를 여세요.

1. **Alertmanager** 드롭다운에서 외부 Alertmanager를 선택하세요.

1. **무음 추가**를 선택하세요.

1. **무음 시작 및 종료**에서 시작 및 종료 날짜를 선택하여 무음이 적용되는 시기와 종료 시기를 표시하세요.

   종료 시간을 설정하는 대신 **기간**에서 무음이 적용되는 기간을 지정하세요. 그러면 **무음 시작 및 종료** 필드의 종료 시간이 자동으로 업데이트됩니다.

1. **이름** 및 **값** 필드에 *일치하는 레이블*을 하나 이상 입력하세요. 매처는 무음이 적용되는 규칙을 결정합니다. 레이블 일치는 이 절차 이후에 자세히 설명합니다.

1. 선택적으로 **설명**을 추가하거나 **생성자** 수정하여 무음 소유자를 설정하세요.

1. **생성**을 선택하여 무음을 생성하세요.

**편집** 아이콘(펜)을 선택하여 기존 무음을 편집할 수 있습니다.

**알림 억제를 위한 레이블 일치**

무음을 생성할 때 무음의 일부로 *일치하는 레이블* 세트를 생성합니다. 알림을 억제하기 위해 일치해야 하는 레이블에 대한 규칙 세트입니다. 일치하는 레이블은 다음과 같이 세 부분으로 구성됩니다.
+ **레이블** - 일치시킬 레이블의 이름. 알림의 레이블 이름과 정확히 일치해야 합니다.
+ **연산자** - 레이블 값을 일치 레이블 값과 비교하는 데 사용되는 연산자. 사용 가능한 연산자는 다음과 같습니다.
  + `=` 값이 제공된 문자열과 정확히 일치하는 레이블을 선택합니다.
  + `!=` 값이 제공된 문자열과 일치하지 않는 레이블을 선택합니다.
  + `=~` 값이 제공된 문자열의 정규식 해석 값과 일치하는 레이블을 선택합니다(제공된 문자열은 정규식으로 해석됨).
  + `!=` 제공된 정규식과 일치하지 않는 레이블을 선택합니다.
+ **값** - 레이블 값과 일치하는 값. 선택한 연산자에 따라 문자열 또는 정규식으로 일치할 수 있습니다.

무음은 표시된 종료일에 종료되지만 언제든지 수동으로 억제를 종료할 수 있습니다.

**수동으로 무음을 종료하는 방법**

1. **알림** 페이지에서 **무음**을 선택하여 기존 무음 목록을 보세요.

1. 종료하려는 무음을 선택하고 **무음 해제**를 선택하세요. 그러면 알림 억제가 종료됩니다.
**참고**  
무음을 해제하면 종료 시간이 현재 시간으로 설정된 것처럼 알림 억제가 종료됩니다. (자동 또는 수동으로) 종료된 무음은 5일 동안 유지되고 나열됩니다. 목록에서 수동으로 무음을 제거할 수 없습니다.

**무음 생성 양식에 대한 링크 생성**

세부 정보가 이미 입력된 무음 생성 양식에 대한 URL을 생성할 수 있습니다. 운영자는 이를 사용하여 운영 이벤트 중에 경보를 신속하게 억제할 수 있습니다.

무음 양식에 대한 링크를 생성할 때 `matchers` 쿼리 파라미터를 사용하여 일치하는 레이블을 지정하고 `comment` 쿼리 파라미터를 사용하여 설명을 지정하세요. `matchers` 파라미터에는 쉼표로 구분된 `[label][operator][value]` 양식의 값이 하나 이상 필요합니다.

**예제 URL**

무음 양식(일치하는 레이블이 `severity=critical` 및 `cluster!~europe-.*`이고 설명이 `Silencing critical EU alerts`임)에 연결하려면 다음과 같은 URL을 사용합니다. *mygrafana*를 Grafana 인스턴스의 호스트 이름으로 바꾸세요.

```
https://mygrafana/alerting/silence/new?matchers=severity%3Dcritical%2Ccluster!~europe-*&comment=Silence%20critical%20EU%20alert
```

외부 Alertmanager의 새 무음 페이지에 연결하려면 `alertmanager=myAlertmanagerdatasource`와 같은 Alertmanage 데이터 소스 이름이 포함된 `alertmanager` 쿼리 파라미터를 추가하세요.

# 음소거 타이밍
<a name="v9-alerting-notification-muting"></a>

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

음소거 타이밍은 정책에 대한 새 알림이 생성되거나 전송되지 않는 반복 간격입니다. 이를 사용하여 정기 유지 관리 기간과 같은 특정 기간 및 반복 기간에 알림이 실행되지 않도록 합니다.

무음과 마찬가지로 음소거 타이밍은 알림 규칙이 평가되지 않도록 하며 사용자 인터페이스에 알림 인스턴스가 표시되지 않도록 합니다. 이 기능은 알림 생성만 방지합니다.

Grafana 관리형 음소거 타이밍 및 외부 Alertmanager 데이터 소스에 대한 음소거 타이밍을 구성할 수 있습니다.

**음소거 타이밍과 무음 비교**

다음 표에서는 음소거 타이밍과 무음의 차이를 강조합니다.


| 음소거 타이밍 | 무음 | 
| --- | --- | 
|  다시 발생할 수 있는 시간 간격 정의를 사용합니다.  |  시작 및 종료 시간이 고정되어 있습니다.  | 
|  생성 후 알림 정책에 추가됩니다.  |  레이블을 사용하여 무음 여부를 결정하기 위해 알림과 일치시킵니다.  | 
|  Grafana 알림 및 외부 Alertmanager와 함께 작동합니다.  |  외부 Alertmanager에서만 작동합니다.  | 

**음소거 타이밍을 생성하는 방법**

1. Grafana 콘솔의 Grafana 메뉴에서 **알림**(종 모양) 아이콘을 선택하여 **알림** 페이지를 여세요.

1. **알림 정책**을 선택하세요.

1. **Alertmanager** 드롭다운에서 편집할 Alertmanager를 선택하세요.

1. **음소거 타이밍** 섹션에서 **음소거 타이밍 추가** 버튼을 선택하세요.

1. 음소거 타이밍을 적용할 시간 간격을 선택하세요.

1. **제출**을 선택하여 음소거 타이밍을 생성하세요.

**알림 정책에 음소거 타이밍을 추가하는 방법**

1. 음소거 타이밍을 추가하려는 알림 정책을 선택하고 **편집** 버튼을 선택하세요.

1. **음소거 타이밍** 드롭다운에서 정책에 추가할 음소거 타이밍을 선택하세요.

   **정책 저장** 버튼을 선택하세요.

**시간 간격**

시간 간격은 시간 범위에 대한 정의입니다. 이 간격 동안 알림이 시작되면 알림이 억제됩니다. 범위는 `:`(예: `monday:thursday`)을 사용하여 지원됩니다. 음소거 타이밍에는 여러 시간 간격이 포함될 수 있습니다. 시간 간격은 여러 필드(다음 목록의 세부 정보)로 구성되며, 알림을 억제하려면 모두 일치해야 합니다. 예를 들어 요일(`monday:friday`) 및 시간 범위(8:00\$19:00)를 지정하면 월요일부터 금요일까지 8시\$19시에 알림이 억제되고 토요일 8시\$19시에는 기능 억제되지 않습니다.
+ **시간 범위** - 알림을 억제하는 시간. **시작 시간** 및 **종료 시간**이라는 두 개의 하위 필드로 구성됩니다. 예제 시간은 `14:30`입니다. 시간은 UTC의 24시간 표기법으로 표시됩니다.
+ **요일** - 요일. 하루(예: `monday`), 범위(예: `monday:friday`) 또는 쉼표로 구분된 일 목록(예: `monday, tuesday, wednesday`)일 수 있습니다.
+ **월** - 선택할 월. 숫자를 지정하거나 전체 월 이름을 사용하여 월을 지정할 수 있습니다(예: `1` 또는 `january`). 둘 다 1월을 지정합니다. 한 달, 월 범위 또는 쉼표로 구분된 월 목록을 지정할 수 있습니다.
+ **월의 일** - 한 달의 날짜. 가능한 값의 범위는 `1`\$1`31`입니다. 음수 값은 해당 월의 일을 역순으로 지정하므로 `-1`은 해당 월의 마지막 날짜를 나타냅니다. 월의 일은 하루, 일 범위 또는 쉼표로 구분된 일 목록으로 지정할 수 있습니다.
+ **연도** - 간격에 대한 하나 이상의 연도. 예를 들어 `2023:2025`입니다.

이러한 각 요소는 목록일 수 있으며, 일치하려면 요소의 항목을 하나 이상 충족해야 합니다. 따라서 연도를 `2023:2025, 2027`로 설정한 경우 2023년, 2024년, 2025년 및 2027년(2026년은 아님)에 해당합니다.

필드를 비워 두면 어느 시간이든 필드와 일치합니다. 전체 시간 간격과 일치하려면 시간에서 모든 필드가 일치해야 합니다.

정확한 기간을 지정하려면 해당 기간에 필요한 모든 옵션을 지정합니다. 예를 들어 3월, 6월, 9월, 12월의 첫 번째 월요일, 12:00\$124:00 UTC 시간에 시간 간격을 생성하려는 경우 시간 간격 사양은 다음과 같을 수 있습니다.
+ 시간 범위:
  + 시작 시간: `12:00`
  + 종료 시간: `24:00`
+ 요일: `monday`
+ 월: `3, 6, 9, 12`
+ 해당 월의 일: `1:7`

# 알림 그룹별 보기 및 필터링
<a name="v9-alerting-viewfiltergroups"></a>

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

알림 그룹에서는 Alertmanager 인스턴스의 그룹화된 경보를 표시합니다. 기본적으로 알림 규칙은 알림 정책의 루트 정책에 대한 레이블 키별로 그룹화됩니다. 공통 알림 규칙을 단일 알림 그룹으로 그룹화하면 중복 알림 규칙이 실행되지 않습니다.

알림 그룹을 보고 특정 기준과 일치하는 알림 규칙을 필터링할 수도 있습니다.

**알림 그룹을 보는 방법**

1. Grafana 메뉴에서 **알림**(종 모양) 아이콘을 클릭하여 기존 알림을 나열하는 알림 페이지를 여세요.

1. **알림 그룹**을 클릭하여 기존 그룹을 나열하는 페이지를 여세요.

1. **Alertmanager** 드롭다운에서 외부 Alertmanager를 데이터 소스로 선택하세요.

1. **사용자 지정 그룹화 기준** 드롭다운에서 레이블 조합을 선택하여 기본값이 아닌 다른 그룹화를 보세요. 이는 알림 정책 그룹을 디버깅하고 확인하는 데 유용합니다.

루트 정책의 그룹화 또는 사용자 지정 그룹화에 지정된 레이블이 알림에 포함되지 않은 경우 헤더가 `No grouping`인 다양한 그룹에 알림이 추가됩니다.

**레이블을 기준으로 필터링하는 방법**
+ **검색**에서 기존 레이블을 입력하여 레이블과 일치하는 알림을 확인하세요.

  예를 들어 `environment=production,region=~US|EU,severity!=warning`입니다.

**상태를 기준으로 필터링하는 방법**
+ **상태**에서 활성, 억제됨 또는 미처리 상태 중에서 선택하여 선택한 상태와 일치하는 알림을 보세요. 다른 모든 알림은 숨겨집니다.

# 알림 오류 보기
<a name="v9-alerting-viewnotificationerrors"></a>

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

알림 오류를 보고 알림 오류가 전송되지 않았거나 수신되지 않은 이유를 이해합니다.

**참고**  
이 기능은 Grafana Alertmanager에 대해서만 지원됩니다.

**알림 오류를 보는 방법**

1. Grafana 메뉴에서 **알림**(종 모양) 아이콘을 클릭하여 기존 알림을 나열하는 알림 페이지를 여세요.

1. **연락 지점**을 선택하여 기존 연락 지점 목록을 확인하세요.

   연락 지점에서 장애가 발생한 경우 화면 오른쪽의 메시지에서는 오류가 있다는 메시지와 오류 개수를 사용자에게 알립니다.

1. 연락 지점을 클릭하여 해당 연락 지점에 대한 오류 세부 정보를 확인하세요.

   오류 아이콘 위로 마우스를 가져가면 오류 세부 정보가 표시됩니다.

   연락 지점에 둘 이상의 통합이 있는 경우 나열된 각 통합에 대한 모든 오류가 표시됩니다.

1. 상태 열에서 알림 상태를 확인하세요.

   정상, 시도 없음 또는 오류일 수 있습니다.