15장. 이진 연산자
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
메트릭을 단순히 집계하는 것보다 더 많은 작업을 하고 싶을 때가 있는데, 이때 이항 연산자가 유용하게 사용될 수 있습니다. 이진 연산자는 두 피연산자를 취하는 연산자입니다,1 두 개의 피연산자를 취하는 연산자입니다.
이진 연산자를 사용하면 인스턴트 벡터에 대한 단순한 연산 그 이상을 할 수 있습니다. 레이블을 기반으로 그룹화하여 두 개의 인스턴트 벡터에 이진 연산자를 적용할 수도 있습니다. 다른 메트릭 시스템에서는 거의 제공하지 않는 분석 클래스를 허용하는 PromQL의 진정한 힘은 바로 이 부분에서 나옵니다.
PromQL에는 산술 연산자, 비교 연산자, 논리 연산자의 세 가지 이진 연산자 세트가 있습니다. 이 장에서는 이들을 사용하는 방법을 보여드리겠습니다.
스칼라로 작업하기
인스턴트 벡터와 범위 벡터 외에도 스칼라라고 하는 또 다른 유형의 값 이 있습니다.2 스칼라는 차원이 없는 단일 숫자입니다. 예를 들어 0 은 값이 0인 스칼라이고 {}
0 은 레이블이 없고 값이 0인 단일 샘플을 포함하는 인스턴트 벡터입니다.3
산술 연산자
스칼라를 인스턴트 벡터와 함께 산술에 사용하여 인스턴트 벡터의 값을 변경할 수 있습니다. 예를 들어
process_resident_memory_bytes / 1024
가 돌아올 것입니다:
{instance="localhost:9090",job="prometheus"} 21376
{instance="localhost:9100",job="node"} 13316
는 프로세스 메모리 사용량(킬로바이트)입니다.4
선택기가 반환한 인스턴트 벡터의 모든 시계열에 나누기 연산자가 적용되었고 process_resident_memory_bytes 선택기에 의해 반환된 모든 시계열에 나눗셈 연산자가 적용되었으며, 메트릭 이름이 더 이상 메트릭process_resident_memory_bytes 이 아니므로 제거되었음을 알 수 있습니다.
참고
값을 변경하지 않는 방식으로 산술 연산자를 사용하는 경우에도 일관성을 위해 메트릭 이름이 제거됩니다. 예를 들어 some_gauge + 0 결과에는 메트릭 이름이 없습니다.
여섯 가지 산술 연산은 모두 다른 프로그래밍 언어에서 기대할 수 있는 의미론으로 유사하게 작동합니다. 맞습니다:
-
+추가 -
-빼기 -
*곱셈 -
/division -
%모듈 -
^지수화
모듈로 연산자는 부동 소수점 모듈로이며 정수가 아닌 입력을 제공하면 정수가 아닌 결과를 반환할 수 있습니다. 예를 들어
5 % 1.5
가 반환됩니다:
0.5
이 예에서 알 수 있듯이 두 피연산자가 모두 스칼라일 때 이진 산술 연산자를 사용할 수도 있습니다. 결과는 스칼라가 됩니다. 이는 1073741824 보다(1024 * 1024 * 1024) 의 의도를 훨씬 쉽게 이해할 수 있으므로 가독성 측면에서 주로 유용합니다.
또한 연산자의 왼쪽에는 스칼라 피연산자를, ...
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