Prometheus 문서/데이터 모델

1 개요[ | ]

DATA MODEL
데이터 모델

Prometheus는 기본적으로 모든 데이터를 시계열로 저장합니다. 시계열은 동일한 메트릭과 동일한 레이블 차원을 가진 타임스탬프가 찍힌 값들의 스트림을 의미합니다. 저장된 시계열 외에도 Prometheus는 쿼리 결과로 임시 파생 시계열을 생성할 수 있습니다.

2 메트릭 이름과 레이블[ | ]

모든 시계열은 메트릭 이름과 레이블이라고 불리는 선택적인 키-값 쌍에 의해 고유하게 식별됩니다.

메트릭 이름
  • 시스템에서 측정되는 일반적인 기능을 지정합니다. (예: http_requests_total - 수신된 HTTP 요청의 총 수)
  • 메트릭 이름은 ASCII 문자, 숫자, 밑줄(_), 콜론(:)을 포함할 수 있습니다. 정규식 [a-zA-Z_:][a-zA-Z0-9_:]*과 매치해야 합니다.

참고: 콜론은 사용자 정의 기록 규칙에 예약되어 있습니다. 수출자나 직접 계측에서는 사용하지 않아야 합니다.

메트릭 레이블
  • 동일한 메트릭 이름에 대한 모든 레이블 조합을 식별하기 위해 Prometheus의 차원 데이터 모델을 사용합니다. 이는 해당 메트릭의 특정 차원 인스턴스화(예: 메서드 POST를 사용하여 /api/tracks 핸들러에 요청한 모든 HTTP 요청)를 식별합니다. 쿼리 언어는 이러한 차원을 기반으로 필터링 및 집계를 허용합니다.
  • 레이블의 값이 변경되거나 레이블이 추가/제거되면 새로운 시계열이 생성됩니다.
  • 레이블은 ASCII 문자, 숫자, 밑줄(_)을 포함할 수 있으며, 정규식 [a-zA-Z_][a-zA-Z0-9_]*과 매치해야 합니다.
  • 두 개의 밑줄(__)로 시작하는 레이블 이름은 내부 용도로 예약되어 있습니다.
  • 레이블 값은 모든 유니코드 문자를 포함할 수 있습니다.
  • 값이 비어 있는 레이블은 존재하지 않는 레이블과 동등하게 간주됩니다.

메트릭과 레이블 명명에 대한 모범 사례도 참조하세요.

3 샘플[ | ]

샘플은 실제 시계열 데이터를 형성합니다. 각 샘플은 다음으로 구성됩니다:

  • float64 값
  • 밀리초 정밀도의 타임스탬프

참고: Prometheus v2.40부터는 실험적인 네이티브 히스토그램 지원이 도입되었습니다. 이제 샘플 값은 단순한 float64 대신 전체 히스토그램의 형태를 취할 수 있습니다.

4 표기법[ | ]

메트릭 이름과 레이블 세트가 주어지면 시계열은 종종 다음과 같은 표기법을 사용하여 식별됩니다:

<메트릭 이름>{<레이블 이름>=<레이블 값>, ...}

예를 들어, 메트릭 이름이 api_http_requests_total이고 레이블이 method="POST", handler="/messages"인 시계열은 다음과 같이 작성될 수 있습니다:

api_http_requests_total{method="POST", handler="/messages"}

이 표기법은 OpenTSDB에서도 사용되는 방식과 동일합니다.

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}