목록DevOps/prometheus (5)
내 잡다한 노트
by 라는 키워드는 그룹화를 위해 사용되는 키워드이다. by는 지정된 레이블별로 데이터를 그룹화하거나 집계 결과를 나눠서 보여주라는 의미이다. 예시 : sum(rate(container_cpu_usage_seconds_total[5m])) by ( container_label_com_docker_compose_service)라는게 있다면 container_label_com_docker_compose_service 라는 레이블로 데이터를 그룹화하여 각각의 CPU 사용량을 보여준다.
Prometheus에서 사용되는 주요 함수들은 시계열 데이터를 분석하고 경고를 설정하는 데 매우 유용합니다. 아래는 **Prometheus 쿼리 언어(PromQL)**에서 자주 사용되는 함수들의 개요입니다:1. increase()설명: 특정 시계열 값이 지정된 시간 동안 얼마나 증가했는지 계산합니다. 주로 Counter 메트릭에서 증가분을 추적하는 데 사용됩니다.사용 예시: increase(http_requests_total[5m])이 쿼리는 지난 5분 동안 http_requests_total 메트릭이 얼마나 증가했는지를 계산합니다.2. absent()설명: 지정된 시계열 데이터가 존재하지 않을 때 1을 반환하고, 존재하면 아무 값도 반환하지 않습니다. 주로 No Data 상황을 감지하는 데 유용합니다...
기본적인 벡터 매칭 연산벡터 매칭을 사용할 때, 시계열 간의 값은 다음과 같은 연산자들에 의해 결합됩니다:산술 연산자: +, -, *, /, % 등예를 들어, 두 시계열을 + 연산자로 결합하면, 해당 레이블에 맞는 시계열들의 값을 더한 결과가 반환됩니다.비교 연산자: ==, !=, >, =, 비교 연산을 통해 두 시계열 간의 값을 비교하여 참/거짓을 반환합니다.논리 연산자: and, or, unlessand는 두 시계열에서 공통으로 존재하는 데이터만 반환하고, or는 두 시계열 중 하나라도 값이 있는 데이터를 반환합니다.
벡터 매칭의 정의 : 두 개의 시계열 데이터 집합을 결합할 때 사용하는 개념. 쿼리에서 여러 메트릭을 결합해 새로운 값을 계산하거나, 여러 조건을 조합해 특정 데이터를 필터링하려 할 때 벡터 매칭이 필요하다. # 벡터 매칭이 필요한 이유각 메트릭은 시계열 데이터로 저장된다. 시계열 데이터는 주로 여러 레이블과 값을 가지고 있다. 예를 들어, CPU 사용률 메트릭과 메모리 사용률 메트릭을 결합해 특정 조건을 만들고 싶다고 할 때, 두 메트릭의 레이블이 일치해야 두 데이터를 결합할 수 있다. 벡터 매칭은 이런 결합 작업을 수행할 때, 어떤 레이블을 기준으로 데이터를 결합할지를 명시적으로 정의해준다. # 벡터 매칭의 유형- 1:1 매칭 기본적인 벡터 매칭 유형으로, 두 시계열 집합 간에 레이블이 정확히 일..
exporter의 metrics를 웹으로 확인해보면, #HELP, #TYPE, 그리고 값들이 있다. 이런 식으로 된 걸 확인할 수 있다.여기서 #HELP는 메트릭을 설명해주는 부분이고,#TYPE는 메트릭의 유형이다. 이 유형에 대해 정리할 생각이다.그리고 맨 밑에 것이 Label과 값이다. Label에 해당하는 것이 { } 으로 둘러싸인 key-value 부분이다. 그리고 값은 1.0737~ 로 돼있는 것이다. 유형 Counter : 오직 증가만 하는 값. 재시작하지 않는 한 절대 감소하지 않음. 주로 요청 수, 오류 수와 같은 누적 값을 추적하는 데 사용됨. Gauge : 증가하거나 감소할 수 있는 값. 현재 상태나 순간적인 값을 나타내는 데 사용된다. Histogram : 관측값의 분포를 추적한다...