Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 'use client'; import { useEffect } from 'react'; import { usePathname } from 'next/navigation'; import { rum } from '@/lib/observability/rum'; /** * RUM (Real User Monitoring) Provider * * Initializes RUM collection and tracks page views on route changes. * Must be placed inside a client component tree. * * RUM collects: * - Core Web Vitals (LCP, FID, CLS, FCP, TTFB, INP) * - API call performance * - Long tasks (>50ms) * - JavaScript errors * - Page views */ export function RumProvider({ children }: { children: React.ReactNode }) { const pathname = usePathname(); // Initialize RUM on mount useEffect(() => { rum.init(); }, []); // Track page views on route changes useEffect(() => { if (pathname) { rum.trackPageView(pathname); } }, [pathname]); return <>{children}</>; } export default RumProvider; |