내 잡다한 노트

벡터 매칭 본문

DevOps/prometheus

벡터 매칭

peanutwalnut 2024. 8. 12. 17:36

벡터 매칭의 정의 : 두 개의 시계열 데이터 집합을 결합할 때 사용하는 개념.

 

쿼리에서 여러 메트릭을 결합해 새로운 값을 계산하거나, 여러 조건을 조합해 특정 데이터를 필터링하려 할 때 벡터 매칭이 필요하다.

 

# 벡터 매칭이 필요한 이유

각 메트릭은 시계열 데이터로 저장된다. 시계열 데이터는 주로 여러 레이블과 값을 가지고 있다. 

예를 들어, CPU 사용률 메트릭과 메모리 사용률 메트릭을 결합해 특정 조건을 만들고 싶다고 할 때, 두 메트릭의 레이블이 일치해야 두 데이터를 결합할 수 있다.

 

벡터 매칭은 이런 결합 작업을 수행할 때, 어떤 레이블을 기준으로 데이터를 결합할지를 명시적으로 정의해준다.

 

# 벡터 매칭의 유형

- 1:1 매칭

   기본적인 벡터 매칭 유형으로, 두 시계열 집합 간에 레이블이 정확히 일치하는 시계열을 서로 매칭한다.

 

- 1:N 매칭

  왼쪽 벡터(쿼리)에서 여러 개의 시계열이 오른쪽 벡터(쿼리)의 하나의 시계열과 매칭될 수 있도록 허용하는 방식.

  이 매칭은 주로 group_left 또는 group_right 키워드를 사용할 때 발생한다.

 

# 벡터 매칭에 사용되는 키워드

- on(<label_lists>) 

  매칭에 사용할 레이블을 지정한다. on(instance) 라고 지정하면 instance 레이블이 동일한 시계열들끼리 매칭된다.

  이 레이블만 매칭의 기준으로 사용되고, 다른 레이블들은 무시된다.

 

- ignoring(<label_lists>)

  매칭에서 무시할 레이블을 지정한다. 

 

- group_left(<label_list>) , group_right(<label_lists>)

  group_left : 왼쪾 벡터에 오른쪽 벡터의 추가 레이블을 포함시켜 매칭한다.

  group_right : 위의 것과 반대

 

 

 

 

'DevOps > prometheus' 카테고리의 다른 글

PromQL 에서 by 란?  (0) 2024.11.23
Prometheus 함수  (0) 2024.09.11
벡터 매칭 연산  (0) 2024.08.12
metric 유형, 라벨  (0) 2024.08.08