표 형식 데이터 알림 예제

표 형식 데이터 알림 예제 (Example of alerting on tabular data)

모든 데이터 소스가 시계열 데이터를 반환하지는 않아요. SQL 데이터베이스, CSV 파일, 일부 API는 행이나 열·필드의 배열(표 형식 데이터, tabular data)로 결과를 반환하는 경우가 많아요. 이 예제는 표 형식 데이터를 사용해 알림 규칙을 만드는 방법을 보여줘요. 데이터가 예상 형식을 충족하기만 하면 Grafana는 각 행을 별도의 알림 인스턴스로 취급해요.

출처: 문서

본문

Grafana Alerting이 표 데이터를 평가하는 방법

쿼리가 표 형식 데이터를 반환할 때, Grafana는 각 행을 별도의 알림 인스턴스로 변환해요. 각 행(알림 인스턴스)을 평가하려면 다음이 필요해요:

  • 수치 열 하나만: 알림 조건을 평가하는 값이에요.
  • 비수치 열들: 라벨 집합을 정의해요. 열 이름이 라벨 이름이 되고, 셀 값이 라벨 값이 돼요.
  • 행별 고유 라벨 집합: 각 행이 라벨로 유일하게 식별 가능해야 해요. 각 행이 별개의 알림 인스턴스를 나타내도록 보장해요.

Caution 이 세 조건을 충족해야 해요. 그렇지 않으면 Grafana가 표 데이터를 평가할 수 없고 규칙이 실패해요.

예제 개요

DiskSpace 테이블에 디스크 사용량을 저장하고, 가용 공간이 5% 아래로 떨어지면 알림을 발화하고 싶다고 해요.

Time Host Disk PercentFree
2021-06-07 web1 /etc 3
2021-06-07 web2 /var 4
2021-06-07 web3 /var 8

Host와 Disk별 가용 공간을 계산하려면 $__timeFilter로 시간으로 필터링하면서 날짜는 Grafana에 반환하지 않을 수 있어요:

SELECT
  Host,
  Disk,
  AVG(PercentFree) AS PercentFree
FROM DiskSpace
WHERE $__timeFilter(Time)
GROUP BY Host, Disk

이 쿼리는 다음 표 응답을 반환해요:

Host Disk PercentFree
web1 /etc 3
web2 /var 4
web3 /var 8

Alerting이 쿼리 응답을 평가하면 데이터는 앞서 설명한 대로 세 개의 알림 인스턴스로 변환돼요: 수치 열이 알림 조건의 값이 되고, 추가 열이 각 인스턴스의 라벨 집합을 정의해요.

알림 인스턴스
{Host="web1", Disk="/etc"} 3
{Host="web2", Disk="/var"} 4
{Host="web3", Disk="/var"} 8

마지막으로 가용 공간 5% 미만($A < 5)을 확인하는 알림 조건은 두 인스턴스에서 발화해요:

알림 인스턴스 상태
{Host="web1", Disk="/etc"} 3 Firing
{Host="web2", Disk="/var"} 4 Firing
{Host="web3", Disk="/var"} 8 Normal

TestData로 시도해 보기

TestData 데이터 소스로 표를 빠르게 시뮬레이션할 수 있어요:

  • Connections 메뉴로 TestData 데이터 소스를 추가해요.
  • Alerting으로 이동해 알림 규칙을 만들어요.
  • 데이터 소스로 TestData를 선택해요.
  • Scenario에서 CSV Content를 선택하고 이 CSV를 붙여넣어요:
host, disk, percentFree
web1, /etc, 3
web2, /var, 4
web3, /var, 8
  • $A < 5 같은 조건을 설정하고 Preview를 클릭해요. Grafana가 표 데이터를 평가하고 처음 두 알림 인스턴스에서 발화해요.

Infinity로 CSV 데이터 사용

Infinity 플러그인이 CSV 데이터를 가져올 때 모든 열이 문자열로 파싱되어 반환돼요. 기본적으로 이로 인해 Alerting의 쿼리 표현식이 실패해요. 작동하게 하려면 Grafana Alerting이 기대하는 형식으로 CSV 데이터를 포맷해야 해요. 쿼리 편집기에서 열 이름과 유형을 지정해 오직 한 열만 숫자로 처리되도록 해요.

시계열 데이터와의 차이점

시계열 작업도 비슷해요 — 각 시리즈는 라벨 집합을 기반으로 별도의 알림 인스턴스로 취급돼요. 핵심 차이는 데이터 형식이에요:

  • 시계열 데이터는 각각 타임스탬프를 가진 시간에 걸친 여러 값을 포함해요. 알림 조건을 평가하려면 last(), avg(), max() 같은 함수로 각 시리즈를 단일 숫자로 축소해야 해요.
  • 표 형식 데이터는 각 행이 알림 조건을 평가하는 단일 수치 값만 포함하므로 축소가 필요 없어요.

비교를 위해 다차원 시계열 데이터 예제를 참고하세요.

더 알아보기 (Learn more)