본문 바로가기
WIKI 기술 지식 베이스

sum/min/max/avg 애그리게이터를 바꿔도 값이 달라지지 않아요

원문 보기 위키 갱신

sum/min/max/avg 애그리게이터를 바꿔도 값이 달라지지 않아요 (Switching between the sum/min/max/avg aggregators doesn't change the value)

sum/min/max/avg 애그리게이터를 전환했는데 값이 그대로인 경우가 있어요. 결함이 아니라 쿼리 범위 때문입니다. 이 애그리게이터들은 단일 시리즈 안의 포인트가 아니라 여러 시리즈를 가로질러 값을 보기 때문이에요.

쿼리가 가장 세분화된 수준으로 범위가 좁혀져 있으면, 즉 각 시리즈가 이미 하나의 조합에 해당한다면 애그리게이터를 바꿔도 값이 달라지지 않습니다. 언제 그런지, 언제 달라지는지 예시로 살펴볼게요.

출처: 문서

본문

sum/min/max/avg 애그리게이터를 사용할 때는 단일 시리즈 안의 포인트가 아니라 여러 시리즈를 가로질러 봐요. 그래서 쿼리가 가장 세분화된 수준으로 범위가 좁혀져 있다면, 이 애그리게이터들을 전환해도 보이는 값이 달라지지 않을 수 있습니다.

예를 들어 웹 요청을 host와 path로 세분화해 각 조합마다 시리즈를 얻는다고 해 볼게요. 특정 시점의 데이터는 다음과 같을 수 있어요.

Metric Name Tags Value
web.requests host: a, path: /test1 5
web.requests host: a, path: /test2 3
web.requests host: b, path: /test1 2
web.requests host: b, path: /test2 8

host로 그룹핑하면 조합해야 할 host당 시리즈가 2개씩 있으므로, 집계 방법에 따라 결과가 달라져요.

Query host: a host: b
sum:web.requests(*) by {host} 8 10
min:web.requests(*) by {host} 3 2
max:web.requests(*) by {host} 5 8
avg:web.requests(*) by {host} 4 5

이 예시에서 host 그리고 path로 그룹핑하면, 이 데이터의 가장 세분화된 수준이므로 시리즈마다 sum/min/max/avg가 같은 네 개의 시리즈가 나와요.

더 알아보기 (Learn more)