Skip to main content

PromQL


Data Model

# 주석
<metric_name>[{<label>="<label_value>"[,<label>="<label_value>"]}] <value>
  • <metric_name>: [a-zA-Z_:][a-zA-Z0-9_:]* 정규식을 만족해야합니다
  • <label>: [a-zA-Z_][a-zA-Z0-9_]* 정규식을 만족해야합니다
    • instance: 데이터를 수집할 타겟의 host:port로, Prometheus가 데이터를 수집할 때 자동으로 추가합니다
    • job: 같은 목적을 가진 인스턴스 집합의 이름으로, Prometheus가 데이터를 수집할 때 자동으로 추가합니다
  • <label_value>: 모든 문자열을 허용하며, 빈 문자열인 경우 해당 레이블을 사용하지 않은 것으로 간주합니다
  • 메트릭 이름과 레이블의 조합은 시계열 데이터의 키가 됩니다
warning

메트릭 이름에서 :은 사용자 정의 recording rule에서 사용되고, __로 시작하는 레이블은 내부 사용을 위해 예약되어 있습니다.

PromQL

Instant Vector

여러 시계열 데이터에서 같은 timestamp를 갖는 샘플을 한 개씩 모아서 만든 집합입니다.

[<metric_name>][{<label><match_operator>"<string|regex>"[,<label><match_operator>"<string|regex>"]}]
  • 메트릭 이름 또는 레이블만으로 쿼리할 수 있습니다
  • __name__ 레이블의 값으로 메트릭 이름을 지정할 수 있습니다
  • <match_operator>: =, !=, =~, !~ 중 하나입니다
    • =: 레이블의 값이 주어진 문자열과 일치
    • !=: 레이블의 값이 주어진 문자열과 불일치
    • =~: 레이블의 값이 주어진 정규식과 일치
    • !~: 레이블의 값이 주어진 정규식과 불일치

Range Vector

여러 시계열 데이터에서 주어진 범위의 timestamp를 갖는 샘플들을 모아서 만든 집합입니다.

# duration에 사용되는 []는 옵션의 의미가 아닙니다
# Ex) http_requests_total[5m]
<instant_vector_expr>[<duration>[:<resolution>]] [offset <duration>] [@ <unix_timestamp>|start()|end()]
  • <duration>: 숫자 + 단위로 구성된 값을 사용합니다.
    • 단위: ms, s, m, h, d, w, y

Operators

Functions