728x90
반응형
Prometheus 기반 모니터링을 쓰다 보면 rate()와 함께 자주 보게 되는 함수가 바로 irate()다. 둘 다 카운터 지표의 증가율을 계산하지만, 목적과 활용 방식은 분명히 다르다. 특히 장애를 빠르게 감지하려면 irate()의 성격을 제대로 이해하는 것이 중요하다.
irate()는 무엇을 계산할까?
irate()는 말 그대로 “Instant Rate”, 즉 가장 최근 두 데이터 포인트만 가지고 증가율을 계산한다.
그래서 특정 지표가 갑자기 튀거나, 오류가 순간적으로 폭증하는지 확인할 때 강력하다.
예를 들어,
- HTTP 5xx 에러가 갑자기 튀는지 확인
- Kafka consumer lag이 순간적으로 증가하는지 확인
- Redis ops/sec가 갑자기 치솟는지 확인
이런 “순간 변화”를 잡고 싶을 때 irate()는 rate()보다 훨씬 민감하게 반응한다.
irate()를 쓰면 좋은 상황
- 초 단위로 튀는 값 감지
- 장애 전조나 급상승 이벤트 감지
- 트래픽 스파이크 분석
- 1분 이하 단위의 반응이 필요한 대시보드
특히 SRE나 DevOps 관점에서는 장비가 이상 징후를 보이는 ‘찰나’를 놓치지 않기 위해 irate()가 필수다.
irate()와 rate()의 차이
함수계산 방식사용 목적
| rate() | 전체 구간(range vector)의 여러 포인트를 기준으로 평균 증가율 계산 | 장기 추세, 평균 변화율 확인 |
| irate() | 가장 최근 2개의 포인트로 순간 증가율 계산 | 스파이크·변동 탐지, 장애 즉시 알람 |
즉, rate()는 “대체로 어떻게 변했나”,
irate()는 “방금 어떻게 변했나” 를 알려준다고 보면 된다.
사용 예시
irate(http_requests_total{status="500"}[1m])
- 1분 구간을 보지만, 실제 계산은 가장 마지막 2개의 지표만 사용
- 순간적인 500 에러 폭증 여부를 감지하는데 유용
정리
- irate() = 순간 변화율 계산
- 최근 2포인트 기반이라 매우 민감함
- 장애 전조를 찾거나 스파이크 감지하려면 irate()가 최적
- 평균 추세를 보고 싶으면 rate() 사용
728x90
반응형