16장. 기능
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
PromQL에는 2.37.0 기준으로 69개의 함수가 있으며, 일반적인 수학부터 카운터 및 히스토그램 메트릭을 처리하기 위한 함수까지 다양한 기능을 제공합니다. 이 장에서는 모든 함수의 작동 방식과 사용 방법에 대해 알아봅니다.
거의 모든 PromQL 함수는 인스턴트 벡터를 반환하며, 그렇지 않은 세 가지 함수(time, pi, scalar)는 스칼라를 반환합니다. 범위 벡터를 반환하는 함수는 없지만 이미 보신 rate 및 avg_over_time 을 포함한 여러 함수가 범위 벡터를 입력으로 받습니다.
다시 말해, 함수는 일반적으로 한 번에 단일 시계열의 샘플 또는 인스턴트 벡터의 샘플에 걸쳐 작동합니다. 전체 범위 벡터를 한 번에 처리하려면 하위 쿼리를 사용해야 합니다.
PromQL은 정적으로 유형이 지정되며 함수는 입력 유형에 따라 반환값이 변경되지 않습니다. 실제로 각 함수의 입력 유형도 고정되어 있습니다. 하나의 함수가 두 가지 다른 유형으로 작동해야 하는 경우 두 가지 다른 이름이 사용됩니다. 예를 들어 인스턴트 벡터에는 avg 애그리게이터를 사용하고 범위 벡터에는avg_over_time 함수를 사용합니다.
기능에 대한 공식적인 카테고리는 없지만 관련 기능을 함께 그룹화했습니다.
유형 변경
벡터가 있지만 스칼라가 필요하거나 그 반대의 경우가 있을 수 있습니다. 이를 가능하게 하는 두 가지 함수가 있습니다: vector 와 scalar.
벡터
vector 함수는 스칼라 값을 받아 레이블이 없는 샘플 1개와 주어진 값을 가진 인스턴트 벡터로 변환합니다. 예를 들어, 표현식
vector(1)
를 생성합니다:
{} 1
표현식이 결과를 반환해야 하지만 특정 시계열의 존재 여부에 의존할 수 없는 경우에 유용합니다. 예를 들어
sum(some_gauge) or vector(0)
는 some_gauge 에 샘플이 없더라도 항상 샘플 하나를 반환합니다. 사용 사례에 따라 "bool 수정자"에서 설명한 대로 bool 수정자가 or 연산자( "또는 연산자" 참조)보다 더 나은 선택이 될 수 있습니다.
스칼라
scalar 함수는 단일 샘플이 포함된 인스턴트 벡터를 가져와 입력 샘플의 값을 가진 스칼라로 변환합니다. 샘플이 정확히 하나가 없으면 NaN 이 반환됩니다.
이는 스칼라 상수로 작업할 때 주로 유용하지만, 인스턴트 벡터에서만 작동하는 수학 함수를 사용해야 합니다. 예를 들어, 2의 자연 로그 2를 스칼라로 표현하고 싶다면0.6931471805599453 이라고 입력하고 읽는 사람이 숫자의 의미를 알아채길 바라기보다는 이 함수를 사용할 수 있습니다:
scalar(ln(vector(2)))
이렇게 하면 특정 표현식을 더 간단하게 작성할 수도 있습니다. 예를 들어 올해에 어떤 서버가 시작되었는지 확인하려는 경우 이렇게 할 수 있습니다:
year(process_start_time_seconds) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access