- 7년 만의 첫 메이저 업데이트로, 기존 버전과의 호환성을 유지하면서 새 기능들을 도입
- 새롭게 설계된 현대적인 UI
- Remote Write 2.0으로 프로토콜 개선
- UTF-8을 메트릭 이름/라벨에 사용 가능
- OpenTelemetry 와의 상호운용성 강화
- 네이티브 히스토그램을 지원하여 기존 히스토그램보다 더 높은 효율성과 낮은 비용 가능
- 2.0 대비 메모리 사용량과 CPU 효율성 대폭 개선
새로운 UI
- Prometheus 3.0의 가장 큰 특징 중 하나는 새롭게 설계된 UI임
- 특징:
- 더 간결하고 현대적인 인터페이스
-
PromLens 스타일의 트리 뷰 추가
- 유지보수를 간소화하는 최신 기술 스택 적용
- 베타 이후 UTF-8 메트릭 및 라벨 이름 지원 추가
- 구 버전 UI는
old-ui
플래그로 임시 활성화 가능
Remote Write 2.0
- Remote Write 프로토콜을 개선하여 메타데이터, 예제, 생성 타임스탬프, 네이티브 히스토그램 등의 원활한 지원 추가
- 스트링 내부화(string interning)를 사용해 페이로드 크기 및 CPU 사용량 감소
- 부분 쓰기 처리 개선: 클라이언트에 더 자세한 오류 정보 제공
UTF-8 지원
- 이제 UTF-8 문자로 메트릭 이름과 라벨 값 사용 가능
- UTF-8을 지원하지 않는 환경에서는 기존의 언더스코어 방식으로 처리
- PromQL에서 새 인용 구문으로 UTF-8 메트릭 조회 가능
- 현재 Go 클라이언트 라이브러리만 UTF-8 지원 업데이트가 완료되었으며, 다른 언어는 곧 추가 예정
OTLP 지원
-
OpenTelemetry(OTLP) 와의 상호운용성을 강화
-
OTLP Ingestion:
- Prometheus가
/api/v1/otlp/v1/metrics
엔드포인트에서 OTLP 메트릭을 기본적으로 수신하도록 구성 가능
-
OTLP 가이드를 통해 설정 방법 확인 가능
-
UTF-8 정규화:
- OpenTelemetry 메트릭과 라벨 이름에서 점(
.
)을 밑줄(_
)로 변경하는 작업이 필요 없어짐
- OTLP 수집을 위한 다양한 변환 전략에 대한 실험적 지원
네이티브 히스토그램
-
네이티브 히스토그램은 기존 히스토그램보다 더 높은 효율성과 낮은 비용 제공
- 특징:
- 데이터 세트에 맞게 버킷 경계를 업데이트하지 않아도 되는 지수 기반 버킷
- 실험적 기능으로,
--enable-feature=native-histograms
플래그로 활성화 가능
- 일부 포맷과 연산자는 아직 설계 중
Breaking Changes
- 주요 릴리스에서 기존 기능을 깨뜨리지 않으려 노력했지만, 몇 가지 작은 변경 사항 포함:
- 기능 플래그
- 설정 파일
- PromQL
- 스크랩 프로토콜
- 영향을 받을 수 있는 설정은 마이그레이션 가이드를 통해 확인 가능
앞으로의 개선 계획
- 새롭고 포괄적인 거버넌스 모델
-
OpenTelemetry와의 추가 호환성 제공
- OpenMetrics 2.0 (Prometheus 거버넌스 하에 개발)
- 네이티브 히스토그램 안정화 및 사용자 지정 버킷 지원
- 추가 최적화
- UTF-8 지원 확대