네이티브 히스토그램

Native histograms

관측값의 분포를 한 샘플의 가변 버킷으로 담습니다.

···
html
<div class="demo"><div class="title">LATENCY DISTRIBUTION</div><div class="scene"><div class="hist"><div class="fixed"><b>fixed</b><i></i><i></i><i></i><i></i></div><div class="adaptive"><b>native</b><i></i><i></i><i></i><i></i><i></i><i></i></div></div><div class="hist-note">empty ranges omitted</div></div></div>
css
.demo{width:min(94vw,690px);height:min(88vh,320px);box-sizing:border-box;padding:clamp(9px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);font:600 clamp(12px,2.4vmin,16px)/1.25 var(--font-sans,"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,sans-serif);display:flex;flex-direction:column;gap:clamp(7px,2vmin,14px);overflow:hidden}.title{color:var(--accent);font:700 clamp(12px,2.4vmin,16px)/1.2 var(--font-sans,"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,sans-serif);letter-spacing:.04em}.scene{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.scene{flex-direction:column;gap:8px}.hist{width:96%;height:70%;display:grid;grid-template-columns:1fr 1fr;gap:10px}.hist>div{display:flex;align-items:flex-end;gap:3px;padding:6px;border:1px solid var(--line);border-radius:7px;position:relative;box-sizing:border-box}.hist b{position:absolute;top:5px;left:7px;color:var(--muted);font:700 clamp(12px,2.4vmin,15px)/1 var(--font-sans)}.hist i{flex:1;height:20%;background:var(--accent);border-radius:3px 3px 0 0;transition:height .5s}.hist .adaptive i{background:var(--accent-2)}.hist-note{color:var(--muted);font-size:clamp(12px,2.4vmin,15px)}
js
let n=0;const fixed=[25,60,35,15],native=[15,30,64,44,25,11];function draw(){document.querySelectorAll(".fixed i").forEach((b,i)=>b.style.height=(fixed[i]+(n%3)*6)+"%");document.querySelectorAll(".adaptive i").forEach((b,i)=>b.style.height=(native[i]+((n+i)%3)*5)+"%");n++}draw();setInterval(draw,750)

Prometheus 네이티브 히스토그램은 합계·개수와 가변 버킷을 한 샘플로 다룹니다. 빈 버킷을 생략하는 희소 표현과 지수형 버킷으로 넓은 값 범위의 분포를 나타냅니다. Prometheus 3.8부터 안정 기능입니다.

데모는 같은 지연 관측값을 고정 경계와 가변 버킷으로 비교합니다. 수집과 원격 전송은 각각 설정을 켜야 하며, 해상도와 데이터 비용을 함께 살펴야 합니다.

언제 쓰나

지연 분포의 넓은 범위와 분위수를 버킷 경계 재설정 없이 볼 때 사용합니다.

페이지로 열기 ↗