목록DevOps/prometheus (6)
나의 잡다한 노트 및 메모
Prometheus에서 rate와 irate 함수는 둘 다 카운터 메트릭의 초당 증가율을 계산하지만, 계산 방식에서 차이가 있습니다.rate선택한 시간 범위 내의 모든 샘플을 사용해 평균 증가율을 계산합니다.결과가 전체 기간의 평균을 반영하기 때문에 데이터가 불규칙하거나 잡음이 있는 경우에도 비교적 부드러운 값을 제공합니다.irate지정한 시간 범위 내에서 마지막 두 개의 데이터 포인트만을 사용해 "즉시" 증가율을 계산합니다.최신 변화에 민감하게 반응하기 때문에, 단기적인 변화나 급격한 스파이크를 더 잘 반영하지만, 잡음에 의해 값이 크게 변동할 수 있습니다.즉, rate는 장기적인 평균 속도를 보는데 유용하고, irate는 최신의 즉각적인 변화 상황을 파악하는 데 적합합니다.
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 : 관측값의 분포를 추적한다...