Skip to main content

Command Palette

Search for a command to run...

Prometheus Metric&Label 네이밍 모범사례

Updated
Prometheus Metric&Label 네이밍 모범사례
K

backend developer interested in technical problem

Metric Name

1️⃣data model에 유효한 단어를 써야한다.

  • Specify the general feature of a system that is measured (e.g. http_requests_total - the total number of HTTP requests received).

  • Metric names may contain ASCII letters, digits, underscores, and colons. It must match the regex [a-zA-Z_:][a-zA-Z0-9_:]*.

2️⃣metric이 속한 도메인과 관련있는 접두사 사용

  • 종종 클라이언트쪽 라이브러리에서 접두사 는 namespace로 참조됩니다.

  • 애플리케이션과 관련된 측정항목의 경우 일반적으로 접두사는 애플리케이션 이름 자체입니다

  • 그러나 클라이언트 라이브러리에서 내보낸 표준화된 측정항목과 같이 측정항목이 더 일반적인 경우도 있습니다.

예시

  • prometheus_notifications_total (specific to the Prometheus server)

  • process_cpu_seconds_total (exported by many client libraries)

  • http_request_duration_seconds (for all HTTP requests)

3️⃣단일 단위를 가져야한다.

  • 밀리초 또는 바이트를 혼합하지 말 것

4️⃣기본 단위를 사용할 것

기본 단위

더 나은 호환성을 위해서는 기본 단위를 사용해야 합니다.

시간
온도섭씨실용적인 이유로 켈빈 보다 섭씨가 선호됩니다 . 켈빈은 색온도와 같은 특수한 경우나 온도가 절대적이어야 하는 경우 기본 단위로 허용됩니다.
길이미터
바이트바이트
비트바이트다양한 측정항목을 결합하여 혼동을 피하려면 비트가 더 일반적으로 나타나는 경우에도 항상 bytes 를 사용합니다.
퍼센트비율값은 **0-1(0-100 아님!)**입니다.
ratio는 disk_usage_ratio와 같은 이름의 접미사로만 사용됩니다 . 일반적인 측정 항목 이름은 A_per_B패턴을 따릅니다.
전압볼트
전류암페어
에너지
줄 카운터를 내보내는 것을 선호하고 rate(joules[5m])와트 단위로 전력을 제공합니다.
무게그램킬로 접두어 관련 문제를 피하기 위해 킬로그램 보다 그램을 선호합니다 .

Label

측정 대상의 특성을 구별하려면 라벨을 사용합니다.

  • api_http_requests_totaloperation="create|update|delete" : 요청 유형 구별

  • api_request_duration_secondsstage="extract|transform|load" : 요청 단계 구별

측정항목 이름에 라벨 이름을 넣지 마세요. 이렇게 하면 중복이 발생하고 해당 라벨이 집계되면 혼란이 생길 수 있습니다.

주의: 키-값 레이블 쌍의 모든 고유한 조합은 새로운 시계열을 나타내며, 이로 인해 저장되는 데이터 양이 크게 늘어날 수 있습니다. 사용자 ID, 이메일 주소 또는 기타 무제한 값 집합과 같이 카디널리티가 높은 차원(다양한 레이블 값)을 저장하는 데 레이블을 사용하지 마십시오.

참고

프로메테우스 공식문서 [https://prometheus.io/docs/practices/naming/]

14 views

More from this blog

rfc 959 읽어보면서 ftp이해하기

들어가며 프로젝트에서 FTP를 통해 파일을 전송하는 클라이언트를 개발했을 때 이야기입니다. 프로토콜에 대한 이해 없이 개발을 진행하다 보니 불필요하게 시간을 소모한 경험이 있어서 RFC 원문을 읽어보게 되었습니다. 읽게 된 계기 당시 FTP 프로토콜에 대한 이해가 부족한 상태로 개발을 시작했습니다. '제어를 위한 포트와 데이터 전송을 위한 포트가 분리되어 있다' 정도만 알고 있었고 Active 모드와 Passive 모드의 차이를 제대로 이해...

Dec 5, 20256
rfc 959 읽어보면서 ftp이해하기

mapstruct 로 보일러플레이트 코드 줄이기

배경 사내에서 교통 모니터링용 레이더 디바이스를 관리하는 API를 개발했을때 이야기입니다. 반복되는 코드에서 느꼈던 피로를 개선하고자 mapstruct를 적용해봤습니다. 실황 우선 일부 필드만 추출한 Device에 대해 간단히 이야기해야할 것 같습니다. 교통 모니터링용 레이더 디바이스로 신호등이나 가로등에 설치하며 설치된 좌표를 기록하는 위도, 경도와 레이더가 바라보는 방향을 의미하는 heading_angle필드 등이 있습니다. public...

Nov 13, 20259
mapstruct 로 보일러플레이트 코드 줄이기
T

takoyakisoba

38 posts