PromQL 호환성

Google Cloud Managed Service for Prometheus에 대한 PromQL 쿼리는 Monitoring Query Language(MQL)를 사용하여 Monarch 백엔드에서 부분적으로 평가됩니다. 쿼리 결과에는 몇 가지 알려진 차이점이 있습니다. 이 문서에서는 이러한 차이점에 대해 설명합니다.

이 문서에 나열된 차이점을 제외하면 Managed Service for Prometheus의 PromQL은 Prometheus 버전 2.44에서 사용할 수 있는 PromQL과 동일합니다.

새 PromQL 함수

Prometheus 버전 2.44 이후에 추가된 PromQL 함수는 지원되지 않을 수 있습니다.

측정항목 이름 일치

측정항목 이름의 정확한 일치만 지원됩니다.

비활성

비활성은 Monarch 백엔드에서 지원되지 않습니다.

irate 계산

irate 함수의 전환 확인 기간이 단계 크기보다 작으면 기간을 단계 크기로 늘립니다. MQL에서 이러한 변경은 출력에서 어떠한 입력 데이터도 완전히 무시되지 않도록 보장하기 위해 필요합니다. 이 차이점은 rate 계산에도 적용됩니다.

rateincrease 계산

rate 함수의 전환 확인 기간이 단계 크기보다 작으면 기간을 단계 크기로 늘립니다. MQL에서 이러한 변경은 출력에서 어떠한 입력 데이터도 완전히 무시되지 않도록 보장하기 위해 필요합니다. 이 차이점은 irate 계산에도 적용됩니다.

내삽 및 외삽 계산에 차이점이 있습니다. Monarch는 Prometheus와 다른 내삽 알고리즘을 사용하며, 이러한 차이로 인해 약간 다른 결과로 이어질 수 있습니다. 예를 들어 Monarch 카운터 샘플은 Prometheus에 사용되는 단일 타임스탬프가 아닌 시간 범위로 저장됩니다. 따라서 Monarch의 카운터 샘플은 Prometheus 타임스탬프가 이를 제외하더라도 비율 계산에 포함될 수 있습니다. 특히 기본 시계열의 시작 또는 끝 부분에서 쿼리할 때 일반적으로 더 정확한 비율 결과가 제공됩니다.

histogram_quantile 계산

샘플이 없는 히스토그램의 PromQL histogram_quantile 계산은 NaN 값을 생성합니다. MQL 계산은 값을 생성하지 않습니다. 즉, MQL이 대신 타임스탬프의 지점을 삭제합니다.

비율 계산 차이는 histogram_quantile 쿼리에 대한 입력에도 영향을 줄 수 있습니다.

유형이 다른 측정항목에 대한 유형별 함수

업스트림 Prometheus는 약한 유형이지만 Monarch는 강력한 유형입니다. 즉, 이러한 함수가 업스트림 Prometheus에서 작동하더라도 다른 유형의 측정항목(예: GAUGE 측정항목에서 rate() 실행 또는 COUNTER 또는 유형이 지정되지 않은 측정항목에서 histogram_quantile() 실행)에서 단일 유형에 대한 함수 실행은 Managed Service for Prometheus에서 작동하지 않습니다.