내 잡다한 노트

Prometheus 함수 본문

DevOps/prometheus

Prometheus 함수

peanutwalnut 2024. 9. 11. 10:50

Prometheus에서 사용되는 주요 함수들은 시계열 데이터를 분석하고 경고를 설정하는 데 매우 유용합니다. 아래는 **Prometheus 쿼리 언어(PromQL)**에서 자주 사용되는 함수들의 개요입니다:

1. increase()

  • 설명: 특정 시계열 값이 지정된 시간 동안 얼마나 증가했는지 계산합니다. 주로 Counter 메트릭에서 증가분을 추적하는 데 사용됩니다.
  • 사용 예시:
     
    increase(http_requests_total[5m])
    이 쿼리는 지난 5분 동안 http_requests_total 메트릭이 얼마나 증가했는지를 계산합니다.

2. absent()

  • 설명: 지정된 시계열 데이터가 존재하지 않을 때 1을 반환하고, 존재하면 아무 값도 반환하지 않습니다. 주로 No Data 상황을 감지하는 데 유용합니다.
  • 사용 예시:
     
    absent(node_cpu_seconds_total)
    이 쿼리는 node_cpu_seconds_total 메트릭이 없을 때 경고를 발생시킬 수 있습니다.

3. rate()

  • 설명: 특정 시계열 값이 시간당 얼마나 변화했는지를 계산합니다. 주로 Counter 메트릭에서 시간당 변화율을 추적하는 데 사용됩니다.
  • 사용 예시:
     
    rate(http_requests_total[5m])
    이 쿼리는 지난 5분 동안 초당 HTTP 요청 수의 평균 변화율을 계산합니다.

4. sum()

  • 설명: 특정 시계열의 값들을 합산합니다. 여러 인스턴스나 레이블을 가진 메트릭의 값을 합산하여 전체 시스템의 상태를 평가하는 데 사용됩니다.
  • 사용 예시:
     
    sum(rate(http_requests_total[1m]))
    이 쿼리는 모든 인스턴스의 HTTP 요청 총합을 계산합니다.

5. avg()

  • 설명: 특정 시계열의 평균값을 계산합니다.
  • 사용 예시:
     
    avg(rate(http_requests_total[5m]))
    이 쿼리는 5분 동안의 HTTP 요청 변화율의 평균을 계산합니다.

6. max()

  • 설명: 시계열의 최댓값을 반환합니다.
  • 사용 예시:
     
    max(node_cpu_seconds_total)
    이 쿼리는 node_cpu_seconds_total 메트릭에서 가장 큰 값을 반환합니다.

7. min()

  • 설명: 시계열의 최솟값을 반환합니다.
  • 사용 예시:
     
    min(node_memory_MemAvailable_bytes)
    이 쿼리는 사용 가능한 메모리 중 최솟값을 반환합니다.

8. count()

  • 설명: 시계열의 데이터 포인트 수를 계산합니다.
  • 사용 예시:
     
    count(node_cpu_seconds_total)
    이 쿼리는 node_cpu_seconds_total 메트릭에서 데이터 포인트의 개수를 반환합니다.

9. irate()

  • 설명: 특정 시계열 값의 즉각적인 변화율을 계산합니다. 짧은 기간 동안의 변화율을 측정할 때 유용합니다.
  • 사용 예시:
     
    irate(http_requests_total[1m])
    이 쿼리는 지난 1분 동안의 HTTP 요청의 즉각적인 변화율을 계산합니다.

10. histogram_quantile()

  • 설명: 히스토그램에서 특정 퍼센타일 값을 계산하는 데 사용됩니다.
  • 사용 예시:
     
    histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))
    이 쿼리는 HTTP 요청 시간에 대한 95번째 퍼센타일 값을 계산합니다.

11. bottomk()

  • 설명: 시계열 데이터 중에서 하위 k개를 반환합니다.
  • 사용 예시:
     
    bottomk(5, rate(http_requests_total[5m]))
    이 쿼리는 지난 5분 동안 HTTP 요청이 가장 적은 상위 5개의 메트릭을 반환합니다.

12. topk()

  • 설명: 시계열 데이터 중에서 상위 k개를 반환합니다.
  • 사용 예시:
     
    topk(5, rate(http_requests_total[5m]))
    이 쿼리는 지난 5분 동안 HTTP 요청이 가장 많은 상위 5개의 메트릭을 반환합니다.

요약:

  • increase(): 지정된 시간 동안의 증가량을 계산.
  • absent(): 데이터가 없을 때 경고를 발생시키거나 처리.
  • rate(): 시간당 변화율 계산.
  • sum(): 합계를 계산.
  • avg(): 평균값을 계산.
  • max(), min(): 최대/최소 값을 계산.
  • count(): 데이터 포인트 수를 계산.
  • irate(): 즉각적인 변화율을 측정.
  • histogram_quantile(): 퍼센타일 값 계산.
  • topk(), bottomk(): 상위 또는 하위 k개의 값 반환.

이 함수들은 Prometheus에서 다양한 메트릭을 분석하고 알람을 설정하는 데 중요한 역할을 합니다.

'DevOps > prometheus' 카테고리의 다른 글

PromQL 에서 by 란?  (0) 2024.11.23
벡터 매칭 연산  (0) 2024.08.12
벡터 매칭  (0) 2024.08.12
metric 유형, 라벨  (0) 2024.08.08