On Missing Data 구성으로 마이그레이션하기
On Missing Data 구성으로 마이그레이션하기 (Migrating to On Missing Data Configuration)
메트릭 모니터는 누락된 데이터를 처리하는 향상된 옵션을 제공하며, 누락된 데이터를 실패 모드(failure mode)와 건강한 상태로 구분할 수 있게 해줘요.
이 옵션들은 Logs, Events, CI, Database, Error Tracking 등을 포함한 다른 모니터 유형에서 사용할 수 있는 것들과 일치해요.
출처: 문서
본문
On Missing Data 옵션 사용의 이점 (Benefits of using On Missing Data options)
오류 같은 나쁜 이벤트의 수를 측정할 때, 데이터가 감지되지 않으면 모니터는 "OK"를 반영해야 해요. 기존 No Data 구성에서는 모니터가 No Data를 보고했어요. On Missing Data 구성 옵션은 모니터가 건강 상태를 더 정확하게 반영하게 해줘서 명확성을 높여요.
UI로 관리하는 모니터 (Monitors managed through the UI)
UI에서 모니터를 관리한다면, 다음에 편집할 때 구성이 자동으로 업데이트돼요. On Missing Data 구성을 더 빨리 업데이트하려면 API를 통한 조정에 대해 설명하는 다음 섹션을 참고해요.
API 또는 Terraform으로 관리하는 모니터 (Monitors managed through the API or Terraform)
API 또는 Terraform으로 모니터를 관리한다면 notify_no_data와 no_data_timeframe을 on_missing_data로 바꿔요. on_missing_data는 시간 창과 같은 시간 프레임을 사용하므로 no_data_timeframe 파라미터는 필요하지 않아요.
API 파라미터 (API parameters)
이전 No Data 파라미터인 notify_no_data는 기존 모니터에서 계속 사용 가능하며, 새 on_missing_data 기능으로 자동 업그레이드되지는 않아요.
| 파라미터 (Parameter) | UI 설명 (UI Description) |
|---|---|
"on_missing_data": "show_and_notify_no_data" |
데이터가 누락되면 Show NO DATA 및 알림(이전: "Notify if data is missing") |
"on_missing_data": "show_no_data" |
데이터가 누락되면 Show NO DATA(이전: "Do not notify if data is missing") |
"on_missing_data": "resolve" |
데이터가 누락되면 Show OK |
"on_missing_data": "default" (sum 또는 count 집계 사용 시) |
데이터가 누락되면 0(또는 다른 기본값)으로 평가 |
"on_missing_data": "default" (다른 모든 집계 유형 사용 시) |
데이터가 누락되면 마지막으로 알려진 상태 표시 |
사용 가능한 모든 필드는 API 문서를 참고해요.
해당 필드가 있는 JSON 모니터의 전후 예시는 다음과 같아요:
이전(Before)
{
"name": "CPU usage is high for host $host.value",
"type": "query alert",
"query": "avg(last_5m):100 - avg:system.cpu.idle{$host} > 90",
"message": "A high CPU usage has been detected for host $host.value, which can impact the system performance.",
"tags": [],
"options": {
"thresholds": { "critical": 90 },
"notify_audit": false,
"include_tags": false,
"notify_no_data": true,
"no_data_timeframe": 10
}
}
이후(After)
{
"name": "CPU usage is high for host $host.value",
"type": "query alert",
"query": "avg(last_5m):100 - avg:system.cpu.idle{$host} > 90",
"message": "A high CPU usage has been detected for host $host.value, which can impact the system performance.",
"tags": [],
"options": {
"thresholds": { "critical": 90 },
"notify_audit": false,
"include_tags": false,
"on_missing_data": "show_and_notify_no_data"
}
}
모니터 기반 SLO (Monitor-based SLOs)
SLO는 업타임과 다운타임을 이 매핑에 따라 처리해요:
| On Missing Data 구성 | 모니터 상태 (Monitor Status) | SLO 처리 (SLO Treatment) |
|---|---|---|
| Show OK | OK | Uptime |
| Show No Data | No Data | Uptime |
| Show No Data and Notify | No Data | Downtime |
| Show last known status | 마지막 상태였던 것 | OK면 Uptime, Alert면 Downtime |
| Evaluate as zero | 임계값 구성에 따라 다름 | OK면 Uptime, Alert면 Downtime |