پایش تجربهٔ کاربران واقعی (RUM)

تجربهٔ واقعی کاربران را ببینید — وب‌وایتال‌ها، خطاها، سشن‌ها و منابع

Watchlog RUM تجربهٔ واقعی کاربران را اندازه‌گیری می‌کند: LCP/INP/CLS/TTFB، خطاهای جاوااسکریپت با Stacktrace، منابع کند و فعالیت سشن‌ها — با فیلتر بر اساس محیط، مرورگر و دستگاه.

چرا پایش کاربران واقعی (RUM)؟

سناریوهای مصنوعی (Synthetic) عالی‌اند؛ اما RUM نشان می‌دهد کاربران واقعی دقیقاً چه می‌بینند و چه زمانی دچار افت تجربه می‌شوند — روی دستگاه‌ها و شبکه‌های متفاوت.

  • وب‌وایتال‌ها (LCP/INP/CLS/TTFB) به‌همراه صدک‌های p50/p75/p95 و روندها.
  • گروه‌بندی خطاهای جاوااسکریپت با fingerprint و Stacktrace.
  • منابع کند به تفکیک مسیر (Path) با p95 مدت بارگذاری و حجم انتقال.
  • فیلتر بر اساس محیط/دستگاه/مرورگر + انتخاب بازهٔ زمانی دلخواه.

با Watchlog RUM چه خواهید داشت

یک داشبورد تمیز

ترافیک، خطا، وب‌وایتال و منابع — همه در یک نما.

عیب‌یابی سریع

از مسیرها به گروه خطا و سشن نمونه بپرید.

تقسیم‌بندی منعطف

محیط، مرورگر و دستگاه را مستقل تحلیل کنید.

حریم خصوصی و نمونه‌برداری

کنترل sampling و ماسک‌کردن داده‌های حساس.

ویژگی‌های کلیدی

وب‌وایتال‌ها با p50/p75/p95

پایش LCP/INP/CLS/TTFB به تفکیک مسیر و بازهٔ زمانی.

گروه‌بندی خطا

Fingerprint پایدار، پیام و آخرین Stacktrace.

کاوشگر سشن‌ها

فهرست سشن‌ها + جزئیات رخدادها و داده‌های سفارشی.

منابع کند

p95 مدت، اندازهٔ انتقال و نوع initiator.

فیلتر و بازهٔ زمانی

تغییر سریع فیلترها و بازه برای تمرکز بهتر.

API و خروجی

Endpoint عمومی برای نمودارها و گزارش‌ها.

نحوهٔ کارکرد

  1. ۱. نصب
    نصب SDK برای React/Vue یا Vanilla.
  2. ۲. پیکربندی
    Endpoint، کلید API، نام اپ و محیط.
  3. ۳. استقرار
    شروع جمع‌آوری داده‌های واقعی.
  4. ۴. کاوش
    داشبوردها، جدول‌ها و سشن‌ها.
  5. ۵. بهبود
    تحلیل روندها و رفع رگرسیون‌ها.

استفاده در React — در چند دقیقه

SDK را نصب کنید، Provider را اضافه کنید، تمام! (اختیاری: نصب web-vitals برای دقت بالاتر)

React + @watchlog/rum-react

npm i @watchlog/rum-react web-vitals

// src/main.tsx
import React from 'react'
import ReactDOM from 'react-dom/client'
import { BrowserRouter, Route } from 'react-router-dom'
import { RumProvider, WatchlogRoutes } from '@watchlog/rum-react'

import App from './App'
import User from './UserPage'

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <RumProvider
      config={{
        app: 'test-rum-react',
        apiKey: '<API-Key>',
        environment: 'prod',
        endpoint: 'https://api.watchlog.ir/rum',
        sampleRate: 0.1,
        networkSampleRate: 0.1,
        enableWebVitals: true,
        autoTrackInitialView: true,
        captureLongTasks: true,
        captureFetch: true,
        captureXHR: true,
        beforeSend: (ev) => {
          // ماسک‌کردن داده‌های حساس در صورت نیاز
          return ev
        },
      }}
    >
      <BrowserRouter>
        <WatchlogRoutes>
          <Route path="/" element={<App />} />
          <Route path="/user/:id" element={<User />} />
        </WatchlogRoutes>
      </BrowserRouter>
    </RumProvider>
  </React.StrictMode>
)

موارد استفادهٔ رایج RUM

رگرسیون‌های عملکرد

پایش LCP/INP/CLS پس از هر انتشار.

ردیابی خطاهای JS

گروه‌بندی پیام‌ها، مسیرهای پرتکرار و نرخ خطا.

مقایسهٔ نسخه/محیط

مقایسهٔ prod/staging یا نسخه‌ها با فیلترهای آماده.

سؤالات متداول RUM

آیا به بستهٔ web-vitals نیاز دارم؟

اختیاری است؛ اما نصب آن دقت INP/CLS/LCP را افزایش می‌دهد.

چه داده‌ای ارسال می‌شود؟

page_view، web_vital، resource، error و رویدادهای سفارشی (در صورت ارسال شما).

وضعیت حریم خصوصی چطور است؟

نمونه‌برداری، فیلترها و قلاب beforeSend برای ماسک/حذف داده‌ها.

آیا با SPAها سازگار است؟

بله — React (Provider + WatchlogRoutes)، Vue و Vanilla JS.

سؤال دیگری داری؟ تماس بگیر

حاضری ببینی کاربران واقعاً چه تجربه‌ای دارند؟