Real User Monitoring

실제 사용자 측정

RUM collects performance measurements from real visits and devices.

···
html
<div class="atlas"><div class="head"><b>RUM · visits become a distribution</b><span class="pulse"></span></div><div class="stage"><div class="rum-plot box"><div class="rum-dots" id="rum-dots"></div><div class="rum-line" id="rum-line"><span>p75</span></div></div><div class="rum-foot mono"><span>fast</span><span id="rum-count">5 visits</span><span>slow</span></div></div></div>
css
.atlas{width:min(94vw,720px);height:min(88vh,320px);border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:clamp(10px,2.5vmin,18px);display:flex;flex-direction:column;gap:clamp(7px,2vmin,12px);font:500 clamp(12px,3.2vmin,16px)/1.25 var(--font-sans),sans-serif;color:var(--fg);box-shadow:0 8px 28px rgba(0,0,0,.06)}.head{display:flex;align-items:center;justify-content:space-between;color:var(--accent);letter-spacing:.03em}.pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:blink 1.3s infinite}@keyframes blink{50%{opacity:.2}}.stage{flex:1;min-height:0;position:relative;overflow:hidden}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.muted{color:var(--muted)}.accent{color:var(--accent)}.box{border:1px solid var(--line);border-radius:8px;background:var(--bg)}.rum-plot{height:76%;position:relative;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,var(--bg)),var(--bg))}.rum-dots{position:absolute;inset:10px 8px}.rum-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent);opacity:.8;transition:opacity .3s}.rum-line{position:absolute;left:62%;top:0;bottom:0;border-left:2px dashed var(--accent-2);transition:left .5s}.rum-line span{position:absolute;left:3px;top:4px;font-size:12px;color:var(--accent)}.rum-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:7px}
js
const points=[15,27,38,45,53,58,62,68,72,77,84,89];let count=5;function tick(){count=count>=points.length?5:count+1;document.getElementById('rum-dots').innerHTML=points.slice(0,count).map((x,i)=>'<i class=rum-dot style="left:'+x+'%;top:'+(18+(i*37)%60)+'%"></i>').join('');document.getElementById('rum-line').style.left=points[Math.floor((count-1)*.75)]+'%';document.getElementById('rum-count').textContent=count+' visits'}tick();setInterval(tick,600)

RUM collects performance events in users’ browsers, showing a distribution from real environments. It helps reveal slow devices or networks that one local test misses.

The demo adds visit dots and moves a 75th-percentile marker. Segment by page, device, or region to find causes, and limit data collection appropriately.

When to use

Use it to prioritize work or compare real experience before and after a release.

Open as page ↗