Prometheus
v3.12.0ObservabilityPrometheus 3.12.0은 Remote Write DoS와 STACKIT SD 시크릿 노출 두 가지 보안 패치를 포함하며, Agent 모드 WAL 레이스 버그를 수정하고 TSDB 범위 쿼리의 헤드 청크 조회를 O(1)로 개선합니다.
securitySTACKIT SD 사용 환경은 자격증명 교체 후 즉시 업그레이드
이번 릴리스에서 두 가지 보안 취약점이 패치되었습니다. 첫째, Remote Write 수신 시 snappy 압축 페이로드의 선언된 압축 해제 크기가 32 MB를 초과하면 요청을 거부하도록 변경되었습니다 — DoS 공격 벡터를 막는 조치입니다. 둘째, STACKIT SD가 `/-/config` 엔드포인트를 통해 시크릿을 평문으로 노출하는 버그(GHSA-39j6-789q-qxvh)가 수정되었습니다. STACKIT SD를 사용 중이라면 업그레이드 전에 노출됐을 수 있는 자격증명을 즉시 교체하세요.
breakingAgent 모드 WAL 레이스 패치 — Agent 배포 환경은 업그레이드 필수
Agent 모드에서 동일한 레이블 셋을 대상으로 동시에 Append가 발생할 때 인메모리 시리즈와 WAL 레코드가 중복 생성되는 레이스 컨디션이 수정되었습니다. 쓰기 부하가 높은 Agent 배포 환경에서는 WAL이 조용히 손상될 수 있었던 버그입니다. 또한 `remote_write` queue_config 필드 유효성 검사가 이제 시작 시점에 수행됩니다 — 기존에는 런타임 패닉으로 이어지던 잘못된 설정이 이제 startup 실패로 나타납니다. 배포 전 반드시 설정 파일을 검증하세요.
enhancementTSDB 범위 쿼리 CPU 개선 및 auto-reload-config 안정화
TSDB 헤드 청크의 범위 쿼리 조회가 O(n²)에서 O(1)로 개선되었고, mmap 처리 시 불필요한 시리즈를 건너뛰도록 최적화되었습니다. 헤드 청크가 많은 운영 환경에서 CPU 사용량이 눈에 띄게 줄어들 수 있습니다. 설정 변경 없이 업그레이드만으로 적용됩니다. 아울러 `auto-reload-config`가 stable로 승격되었으므로, 런북에서 해당 기능에 붙어 있던 '실험적' 주석을 제거해도 됩니다.
주요 변경 (7)
- 보안: Remote Write에서 32 MB 초과 snappy 페이로드 거부(DoS 방어); STACKIT SD 시크릿 평문 노출 패치(GHSA-39j6-789q-qxvh)
- TSDB 성능: 헤드 청크 범위 쿼리 조회 O(n²) → O(1); mmap 시 불필요한 시리즈 건너뜀으로 CPU 절감
- PromQL: 실험적 함수 start(), end(), range(), step() 추가; use-start-timestamps 플래그 뒤에 rate()/irate()/increase()/resets()가 start timestamp 반영
- Service Discovery: DigitalOcean Managed Databases, Outscale VM 추가; AWS EC2 SD IPv6 지원; AWS SD에 external_id 옵션 추가(ECS/MSK/RDS/ElastiCache)
- 버그 수정: Agent WAL 레이스 컨디션, 잘못된 네이티브 히스토그램 스크레이프 패닉, TSDB 네이티브 히스토그램 쿼리 패닉, remote_write 설정 startup 시 유효성 검사 적용
- UI: Status 메뉴에서 시계열 삭제 및 tombstone 정리 기능 추가
- auto-reload-config stable 승격