Youn Sung Hwang

Youn Sung Hwang

🐢 🧞‍ 🏋️‍

PromQL docs 훑어보기

Prometheus PromQL document 훑어보기

Metric types

Counter

다시 시작할 때 값 증가하거나 0으로 재설정 할 수 있는 누적되는 매트릭
구간별로 변화율 파악에 사용하여 특정 값이 어느 정도로 빠르게 증가 추세를 보이고 있는지 확인 할 수 있음

  • 사용 예시 매트릭: 요청 수, 완료된 작업 수, 오류 수 등을 나타낼 수 있음
  • 사용되면 안 되는 경우: 감소 할 수 있는 값(실행 중인 프로세스 수)

Gauge

임의로 오르내릴 수 있는 단일 수치를 나타내는 매트릭
일반적으로 온도나 현재 메모리 사용량과 같은 측정 값에 사용됨

Histogram

https://prometheus.io/docs/concepts/metric_types/#histogram

Summary

https://prometheus.io/docs/concepts/metric_types/#summary


Data types

Instant vector

특정 시점에 대한 시계열 집합, 모두 동일한 타임스탬프를 가짐

Range vector

시간 경과에 따른 범위를 포함하는 시계열 집합

Scalar

a simple numeric floating point value

String

a simple string value; currently unused

Selectors

Label Matcher

  • =: Equal
  • !=: Not equal
  • =~: Regex-match
  • !~: Not regex-match

Modifier

  • offset
    • offset modifier를 사용하면 instant, range vector의 time offset을 수정 할 수 있음
    • 5분전 데이터 표시
      http_requests_total offset 5m
      // modifier는 selector 바로 다음에 사용해야 함
      sum(http_requests_total{method="GET"} offset 5m) // GOOD.
      sum(http_requests_total{method="GET"}) offset 5m // INVALID.
      
  • @modifier
    • 특정 시점(유닉스 시간)의 데이터를 쿼리 할 수 있음
      http_requests_total @ 1609746000
      

Operators

Binary operators

Arithmetic binary operators

  • + (addition)
  • - (subtraction)
  • * (multiplication)
  • / (division)
  • % (modulo)
  • ^ (power/exponentiation)

Comparison binary operators

  • == (equal)
  • != (not-equal)
  • > (greater-than)
  • < (less-than)
  • >= (greater-or-equal)
  • <= (less-or-equal)

Logical/set binary operators

  • and (교집합)
  • or (합집합)
  • unless (차집합)
    • ex) exception은 None 인데 status는 200 이 아닌 집합
      http_server_requests_seconds_count{exception="None"} unless http_server_requests_seconds_count{status="200"}
      

Aggregation operators

  • sum (calculate sum over dimensions)
  • min (select minimum over dimensions)
  • max (select maximum over dimensions)
  • avg (calculate the average over dimensions)
  • count (count number of elements in the vector)
  • bottomk (smallest k elements by sample value)
  • topk (largest k elements by sample value)

without, by 절

  • without: 입력한 label을 결과에서 제거
  • by: without과 반대로 by절에 나열되지 않은 label 삭제

Functions

  • rate()
    • range vector에서 시계열의 평균 증가율 계산
  • irate()
    • range vector에서 시계열의 순간 증가율 계산
    • 마지막 두 데이터를 사용하여계산
  • predict_linear()
    • range vertor를 기반으로 [simple linear regression]를 사용하여 지금부터 일정 시간 이후에 값을 예측
      // 10분간 메모리 사용량을 사용하여 1시간 후 데이터 예측
      predict_linear(jvm_memory_used_bytes[10m], 3600)
      
  • <aggregation>_over_time()

참고

Prometheus 설치 없이 PromQL 조회 해보기

PromLens 데모페이지에 접속하면 PromQL을 사용해 데이터를 조회 해볼 수 있다.
PromQL을 학습할때 유용하다.

promql-test

PromQL Cheat Sheet

기본적인 쿼리 사용 예시를 볼 수 있게 정리해둔 페이지: PromQL Cheat Sheet