Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
클라우드/DevOps

PromQL 표현식 평가 메커니즘과 실무 설계 원리

PromQL은 시계열 데이터에 대한 함수형 쿼리 언어로, 즉시 쿼리와 범위 쿼리 두 가지 실행 모드에서 동일한 평가 로직으로 작동합니다. 벡터 선택자, 연산자, 함수의 계층적 표현식 구조를 통해 복잡한 메트릭 집계를 효율적으로 처리하며, 레이블 기반 매칭과 스테일니스(staleness) 관리는 분산 시스템 모니터링의 핵심 설계 원칙입니다.

2026.09.27  ·  17회  · 

PromQL의 함수형 표현식 구조와 평가 모델

PromQL은 명령형(SQL 스타일)이 아닌 함수형 쿼리 언어로 설계되었습니다. 각 표현식은 독립적으로 평가되어 중간값을 생성하며, 이 중간값이 다시 상위 표현식의 인자나 피연산자로 사용됩니다. 즉시 쿼리(instant query)는 특정 시점의 데이터를 반환하고, 범위 쿼리(range query)는 동일 간격의 여러 시점에서 즉시 쿼리를 반복 실행하는 방식으로 작동하므로, 두 모드 모두 동일한 표현식 평가 로직을 따릅니다.

데이터 타입과 벡터 선택자의 라벨 매칭 의미론

PromQL 표현식은 4가지 데이터 타입으로 평가됩니다: 즉시 벡터(동일 타임스탬프의 시계열 샘플), 범위 벡터(시간 범위의 샘플 집합), 스칼라(부동소수점), 문자열입니다. 즉시 벡터 선택자는 메트릭 이름과 레이블 조건(=, !=, =~, !~)으로 시계열을 필터링하며, 쿼리 평가 타임스탐프 이전의 가장 최근 샘플을 반환합니다. 범위 벡터 선택자는 [5m] 같은 시간 범위를 지정하여 그 윈도우 내 모든 샘플을 수집하며, 좌측 경계는 제외, 우측 경계는 포함하는 반개구간 의미론을 따릅니다.

이진 연산자와 벡터 간 레이블 매칭 전략

두 즉시 벡터 간 이진 연산(덧셈, 곱셈 등)은 기본적으로 동일한 레이블 집합을 가진 샘플끼리 1:1 매칭됩니다. on() 및 ignoring() 수정자로 매칭 대상 레이블을 제어하고, group_left/group_right 수정자로 다대일, 일대다 매칭을 활성화할 수 있습니다. 이러한 설계는 분산 환경에서 서로 다른 서비스의 메트릭을 정확하게 결합하는 데 필수적이며, 부정확한 매칭은 잘못된 집계 결과를 초래합니다.

스테일니스와 샘플 해상도 관리

Prometheus는 기본 5분의 lookback 기간을 설정하여 쿼리 평가 시점 이후의 데이터를 선택하지 않습니다. 시계열이 더 이상 내보내지지 않으면 '스테일'로 표시되어 결과에서 제외되며, 이는 동적 환경에서 종료된 서비스의 메트릭이 자동으로 그래프에서 사라지는 메커니즘입니다. 범위 쿼리에서 부동소수점 샘플과 네이티브 히스토그램 샘플이 혼재될 수 있고, 집계 함수는 호환되지 않는 히스토그램 버킷 레이아웃을 자동 조정합니다.

참고 출처: Prometheus
WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원