오류 추적 모니터
Error Tracking 모니터를 사용하면 웹, 모바일, 백엔드 애플리케이션 전반의 이슈가 새로 생겼을 때, 영향이 클 때, 그리고 회귀가 시작될 때 알림을 받을 수 있어요. 오류를 이슈로 그룹화해 우선순위를 정하고 영향력이 가장 큰 문제를 찾을 수 있게 도와주지요.
출처: 문서
본문
개요
Datadog Error Tracking은 웹, 모바일, 백엔드 애플리케이션의 모든 오류를 자동으로 이슈(issue)로 그룹화해요. 오류를 이슈로 묶어 보면 우선순위를 정하고 가장 영향력 있는 문제를 찾는 데 도움이 되며, 서비스 다운타임을 최소화하고 사용자 불만을 줄이기 쉬워져요.
조직에 Error Tracking이 활성화되어 있으면 Error Tracking 모니터를 만들어 웹 또는 모바일 애플리케이션, 백엔드 서비스, 또는 로그에서 이슈가 새로 발생했을 때, 영향이 클 때, 그리고 회귀(regression)가 시작될 때 알림을 받을 수 있어요.
Error Tracking 모니터 만들기
Datadog에서 Error Tracking 모니터를 만들려면 Monitors > New Monitor > Error Tracking으로 이동하세요.
{% alert level="info" %} 계정당 기본 Error Tracking 모니터 제한은 1000개예요. 계정의 제한을 늘리려면 Support에 문의하세요. {% /alert %}
알림 조건 선택
Error Tracking 모니터를 구성할 수 있는 알림 조건은 두 가지 유형이 있어요.
| 알림 조건 | 설명 |
|---|---|
| New Issue | 이슈가 처음 발생하거나 회귀가 발생할 때 알림을 보내요. 예를 들어 새 오류가 2명 이상의 사용자에게 영향을 미칠 때마다 서비스에 대해 알림을 보내요. |
| High Impact | 영향받은 최종 사용자 수가 많은 이슈에 대해 알림을 보내요. 예를 들어 이 오류가 500명 이상의 사용자에게 영향을 미칠 때마다 서비스에 대해 알림을 보내요. |
알림 조건 정의
{% tab title="New Issue" %}
알림 대상 이슈
New Issue 모니터는 For Review 상태에 있고 알림 조건을 충족하는 이슈에 대해 알림을 보내요. 회귀는 자동으로 For Review 상태로 전환되므로, 기본적으로 New Issue 모니터로 모니터링돼요. 상태에 대한 자세한 내용은 Issue States를 참고하세요.
All, Browser, Mobile, 또는 Backend 이슈를 선택하고, 이슈의 오류 발생에 대해 Error Tracking Explorer search와 동일한 로직으로 검색 쿼리를 구성하세요.
{% alert level="info" %} New Issue 모니터는 모니터가 생성되거나 마지막으로 편집된 후에 생성되거나 회귀된 이슈만 고려해요. 이 모니터들은 24시간 lookback 기간을 가져요. {% /alert %}
알림 임계값 정의
다음 옵션 중 하나를 선택하세요.
{% collapsible-section %} 모든 새 이슈에 대해 알림 새 이슈가 감지되면 모니터가 트리거돼요(지난 하루 동안 오류 수가 0보다 큼). {% /collapsible-section %}
{% collapsible-section %} 알림 메트릭 정의
-
모니터링할 메트릭을 선택하세요. 가장 자주 사용되는 facet에 접근할 수 있는 세 가지 제안된 필터 옵션이 있어요.
- Error Occurrences: 오류 개수가
above(위)일 때 트리거돼요. - Impacted Users: 영향받은 사용자 이메일 수가
above(위)일 때 트리거돼요. - Impacted Sessions: 영향받은 세션 ID 수가
above(위)일 때 트리거돼요.
- Error Occurrences: 오류 개수가
All 또는 Backend 이슈를 선택하면 Error Occurrences 옵션만 사용할 수 있어요.
모니터링에 사용할 커스텀 측정값(custom measure)을 지정할 수도 있어요. 커스텀 측정값을 선택하면 facet의 고유 값 개수가 above(위)일 때 모니터가 알림을 보내요.
-
쿼리와 일치하는 각 이슈에 대해 알림을 보내고, 필요한 다른 속성으로 결과를 그룹화하세요(예: 쿼리와 일치하는 각 이슈 및 각 환경에 대해 알림을 받도록).
-
각 평가에서 지난 하루(기본값) 또는 다른 시간 창 동안의 데이터를 쿼리하세요.
-
모니터가 트리거될 임계값을 선택하세요(기본 0 — 첫 발생 시 트리거).
{% /collapsible-section %}
프로그래매틱 관리
Terraform 또는 공개 API를 사용한 커스텀 스크립트로 모니터를 관리한다면 모니터 쿼리에 일부 절을 지정해야 해요.
- 타겟으로 할 소스를 All, Browser, Mobile, Backend 이슈 중에서 추가하세요. 필터 바로 뒤에
.source()절을"all","browser","mobile", 또는"backend"와 함께 사용하세요. 참고: 한 번에 하나만 사용할 수 있어요. - New Issue 모니터에는
.new()절을 사용해야 해요.
예시:
error-tracking("{filter}").source("backend").new().rollup("count").by("issue.id").last("1d") > 0
{% /tab %}
{% tab title="High Impact" %}
알림 대상 이슈
High Impact 모니터는 For Review 또는 Reviewed 상태이고 알림 조건을 충족하는 이슈에 대해 알림을 보내요. Issue States에 대해 자세히 알아보세요.
All, Browser, Mobile, 또는 Backend 이슈를 선택하고, 이슈의 오류 발생에 대해 Error Tracking Explorer search와 동일한 로직으로 검색 쿼리를 구성하세요.
알림 임계값 정의
-
모니터링할 메트릭을 선택하세요. 가장 자주 사용되는 facet에 접근할 수 있는 세 가지 제안된 필터 옵션이 있어요.
- Error Occurrences: 오류 개수가
above(위)일 때 트리거돼요. - Impacted Users: 영향받은 사용자 이메일 수가
above(위)일 때 트리거돼요. - Impacted Sessions: 영향받은 세션 ID 수가
above(위)일 때 트리거돼요.
- Error Occurrences: 오류 개수가
All 또는 Backend 이슈를 선택하면 Error Occurrences 옵션만 사용할 수 있어요.
모니터링에 사용할 커스텀 측정값(custom measure)을 지정할 수도 있어요. 커스텀 측정값을 선택하면 facet의 고유 값 개수가 above(위)일 때 모니터가 알림을 보내요.
-
쿼리와 일치하는 각 이슈에 대해 알림을 보내고, 필요한 다른 속성으로 결과를 그룹화하세요(예: 쿼리와 일치하는 각 이슈 및 각 환경에 대해 알림을 받도록).
-
각 평가에서 지난 하루(기본값) 또는 다른 시간 창 동안의 데이터를 쿼리하세요.
-
모니터가 트리거될 임계값을 선택하세요(기본 0 — 첫 발생 시 트리거).
프로그래매틱 관리
Terraform 또는 공개 API를 사용한 커스텀 스크립트로 모니터를 관리한다면 모니터 쿼리에 일부 절을 지정해야 해요.
- 타겟으로 할 소스를 All, Browser, Mobile, Backend 이슈 중에서 추가하세요. 필터 바로 뒤에
.source()절을"all","browser","mobile", 또는"backend"와 함께 사용하세요. 참고: 한 번에 하나만 사용할 수 있어요. - High Impact 모니터에는
.impact()절을 사용해야 해요.
예시:
error-tracking("{filter}").source("browser").impact().rollup("count").by("issue.id").last("1d") > 0
{% /tab %}
알림
알림 제목에 트리거 태그를 표시하려면 Include triggering tags in notification title을 클릭하세요.
일치하는 속성/태그 변수 외에도, 알림 메시지에서 사용할 수 있는 Error Tracking 특정 변수는 다음과 같아요.
{{issue.attributes.error.type}}{{issue.attributes.error.message}}{{issue.attributes.error.stack}}{{issue.attributes.error.file}}{{issue.attributes.error.is_crash}}{{issue.attributes.error.category}}{{issue.attributes.error.handling}}
Configure notifications and automations 섹션에 대한 자세한 내용은 Notifications를 참고하세요.
이슈별로 알림을 받으려면 multi alert를 선택하세요. 이것이 Error Tracking 모니터의 의도된 경험이에요.
모니터 음소거
Error Tracking 모니터는 Issue States를 사용해 알림이 중요도가 높은 문제에 집중되도록 유지하고, 중요하지 않은 이슈로 인한 산만함을 줄여요.
무시된(Ignored) 이슈는 추가 조사나 조치가 필요 없는 오류예요. 이슈를 Ignored로 표시하면 해당 이슈는 모니터 알림에서 자동으로 음소거돼요.
문제 해결
New Issue 모니터가 이슈 연령을 고려하지 않음
issue.age와 issue.regression.age는 알림 누락을 유발할 수 있으므로 기본적으로 추가되지 않아요. 예를 들어 이슈가 env:staging에 처음 나타난 다음 일주일 후 env:prod에 처음 나타난다면, 이슈는 일주일 된 것으로 간주되어 env:prod에서 처음으로 알림을 트리거하지 않게 돼요.
결과적으로 Datadog는 issue.age와 issue.regression.age 사용을 권장하지 않아요. 하지만 상태 기반 모니터 동작이 적합하지 않다면, 이 필터를 수동으로 지정해 사용할 수는 있어요.
참고: 모니터에서 issue.age와 issue.regression.age를 사용할 계획이라면, 이 필터 키는 제품 간에 일관되지 않다는 점을 알아두세요. 예를 들어 @issue.age 또는 issue.age일 수 있어요.
New Issue 모니터가 너무 많은 노이즈를 생성함
New Issue 모니터는 알림 기준을 충족하는 For Review로 표시된 이슈에 대해 알림을 트리거해요. 이슈가 제대로 트리아지되지 않으면(Reviewed, Ignored, 또는 Resolved로 표시되지 않으면), 이슈가 OK와 ALERT 상태 사이를 오갈 때 New Issue 모니터가 같은 이슈에 대해 여러 번 트리거할 수 있어요.
모니터가 너무 많은 노이즈를 생성한다면 다음 조정을 고려하세요.
- 알림을 트리아지하세요: 적절할 때 이슈를 Reviewed, Ignored, 또는 Resolved로 설정하세요.
- 평가 시간 창을 확장하세요: 기본 평가 창은 1일이에요. 오류가 드물게(예: 격일로) 발생하면 모니터가 OK와 ALERT 상태 사이를 오갈 수 있어요. 창을 확장하면 재트리거를 방지하고 모니터를 ALERT 상태로 유지하는 데 도움이 돼요.
- 알림 임계값을 높이세요: 기본 임계값은
0으로 설정되어 있어 새 이슈의 첫 발생 시 알림이 울려요. 일회성 또는 산발적 오류로 인한 노이즈를 줄이려면 오류가 여러 번 발생한 후에만 알림을 보내도록 임계값을 높이세요.
더 알아보기 (Learn more)
추가로 도움이 되는 문서, 링크, 아티클: