개요
as_count()
및 as_rate()
모디파이어를 사용하는 쿼리는 모니터 평가에서 다른 결과를 산출할 수 있는 방식으로 계산됩니다. 산술 및 하나 이상의 as_count()
모디파이어가 포함된 모니터는 별도의 평가 경로를 사용하는데 이는 산술 및 시간 집계가 수행되는 순서를 변경합니다.
오류율 예
requests.error
및 requests.total
메트릭을 사용하여 5분 동안의 오류율을 모니터링한다고 가정해 봅시다. 5분 동안 다음과 같이 정렬된 시계열 지점을 사용하여 단일 평가를 수행하는 것을 고려합니다:
분자: sum:requests.error{*}
| Timestamp | Value |
|:--------------------|:------|
| 2018-03-13 11:00:30 | 1 |
| 2018-03-13 11:01:30 | 2 |
| 2018-03-13 11:02:40 | 3 |
| 2018-03-13 11:03:30 | 4 |
| 2018-03-13 11:04:40 | 5 |
분모: sum:requests.total{*}
| Timestamp | Value |
|:--------------------|:------|
| 2018-03-13 11:00:30 | 10 |
| 2018-03-13 11:01:30 | 10 |
| 2018-03-13 11:02:40 | 10 |
| 2018-03-13 11:03:30 | 10 |
| 2018-03-13 11:04:40 | 10 |
두 가지 계산 방법
이 쿼리를 **classic_eval_path
**로 간주합니다:
sum(last_5m): sum:requests.error{*}.as_rate() / sum:requests.total{*}.as_rate()
그리고 이 쿼리를 **as_count_eval_path
**로 간주합니다:
sum(last_5m): sum:requests.error{*}.as_count() / sum:requests.total{*}.as_count()
경로에 따라 평가 결과를 비교합니다:
경로 | Behavior | 확장식 | 결과 |
---|
classic_eval_path | 나누기 후 집계 함수 적용 | (1/10 + 2/10 + 3/10 + 4/10 + 5/10) | 1.5 |
as_count_eval_path | 나누기 전 집계 함수 적용 | (1+2+3+4+5) / (10+10+10+10+10) | 0.3 |
위의 두 평가 모두 수학적으로 정확합니다. 가장 적절한 방법을 선택하세요.
classic_eval_path
를 다음과 같이 시각화하는 것이 도움이 될 수 있습니다:
그리고 as_count_eval_path
를 다음과 같이 시각화합니다:
sum(last_5m):error
-----------------
sum(last_5m):total
일반적으로 **.as_rate()
**를 사용한 avg
시간 집계가 합리적이지만 오류율에 대해서는 .as_count()
를 사용한 sum
집계가 권장됩니다. sum
이외의 집계 방법은 **.as_count()
**와 함께 사용할 수 없습니다.
궁금한 점이 있으시면 Datadog 지원팀에 문의하세요.