내 잡다한 노트
벡터 매칭 본문
벡터 매칭의 정의 : 두 개의 시계열 데이터 집합을 결합할 때 사용하는 개념.
쿼리에서 여러 메트릭을 결합해 새로운 값을 계산하거나, 여러 조건을 조합해 특정 데이터를 필터링하려 할 때 벡터 매칭이 필요하다.
# 벡터 매칭이 필요한 이유
각 메트릭은 시계열 데이터로 저장된다. 시계열 데이터는 주로 여러 레이블과 값을 가지고 있다.
예를 들어, 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 |