การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ
เก็บ LCP, FID, CLS และเครื่องหมายประสิทธิภาพแบบกำหนดเองเป็นเมตริก OTel ด้วยไลบรารี web-vitals
การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
ไลบรารี web-vitals
แพ็กเกจ npm web-vitals ของ Google มี API อย่างง่ายสำหรับวัด Core Web Vitals ในเบราว์เซอร์ของผู้ใช้จริง ติดตั้งด้วย npm install web-vitals แล้วนำเข้าฟังก์ชันเรียกกลับของเมตริกแต่ละรายการ ได้แก่ onLCP, onFID (เลิกใช้แล้ว), onCLS, onFCP, onTTFB และ onINP รุ่นใหม่สำหรับการโต้ตอบจนถึงการวาดครั้งถัดไป
ฟังก์ชันเรียกกลับและออบเจ็กต์เมตริก
ฟังก์ชันเรียกกลับแต่ละรายการ (onLCP, onCLS, onINP และอื่น ๆ) จะได้รับออบเจ็กต์เมตริกที่มีข้อมูลต่อไปนี้: name ('LCP'), value (มิลลิวินาทีหรือคะแนนที่ไม่มีหน่วย), rating ('good', 'needs-improvement', 'poor') และ id (ตัวระบุเฉพาะสำหรับกำจัดข้อมูลซ้ำ) ฟังก์ชันเรียกกลับจะทำงานเมื่อค่าของเมตริกสรุปผลเรียบร้อยแล้ว
การรายงาน Web Vitals ไปยังจุดปลายทางการวิเคราะห์ข้อมูล
ใช้ API Navigator.sendBeacon หรือการเรียกคำขอเครือข่ายเพื่อรายงานเมตริกไปยังจุดปลายทางการวิเคราะห์ข้อมูลของคุณ โดยควรใช้ sendBeacon เนื่องจากยังทำงานต่อแม้หน้าเว็บจะยกเลิกการโหลดแล้ว ซึ่งสำคัญอย่างยิ่งสำหรับเมตริกอย่าง CLS ที่สรุปผลเมื่อซ่อนหน้าเว็บ หากเป็นไปได้ ให้รวมรายงานเมตริกทั้งหมดไว้ในบีคอนเดียว
การส่ง Web Vitals เป็นเมตริกของ OpenTelemetry
หากต้องการผสาน Web Vitals เข้ากับ OpenTelemetry ให้สร้างเครื่องมือวัดแบบเกจสำหรับแต่ละเมตริก: const lcp = meter.createObservableGauge('web_vitals.lcp') ในฟังก์ชันเรียกกลับ onLCP แต่ละรายการ ให้บันทึกค่าพร้อมคุณลักษณะที่เกี่ยวข้อง (เส้นทางหน้าเว็บ ประเภทอุปกรณ์) จากนั้นระบบแบ็กเอนด์ด้านการสังเกตการณ์ของคุณจะสามารถแจ้งเตือนเมื่อค่า P75 LCP แย่ลงได้
เครื่องหมายประสิทธิภาพแบบกำหนดเองของ React
หากต้องการวัดประสิทธิภาพเฉพาะของ React ที่ Web Vitals ไม่ได้เก็บข้อมูลไว้ ให้ใช้ User Timing API: performance.mark('render-start') ก่อนเรนเดอร์, performance.mark('render-end') หลังเรนเดอร์ จากนั้นใช้ performance.measure('component-render', 'render-start', 'render-end') การวัดเหล่านี้จะแสดงในแท็บ Performance ของ Chrome DevTools
API React Profiler
คอมโพเนนต์ React Profiler จะครอบส่วนย่อยของต้นไม้คอมโพเนนต์ และเรียกฟังก์ชันเรียกกลับ onRender พร้อมข้อมูลเวลา ได้แก่ id (รหัสของ Profiler), phase ('mount' หรือ 'update'), actualDuration (เวลาเรนเดอร์จริง) และ baseDuration (เวลาเรนเดอร์โดยประมาณหากไม่มีการจดจำผลลัพธ์) ใช้สิ่งนี้ระหว่างการพัฒนาเพื่อค้นหาคอมโพเนนต์ที่ทำงานช้า
การติดตามข้อผิดพลาดในรูปแบบสแปนของ OpenTelemetry
สามารถบันทึกข้อผิดพลาดที่ไม่ได้จัดการและการปฏิเสธ Promise ได้เป็นสแปนของ OpenTelemetry ที่มีสถานะข้อผิดพลาด ตั้งค่าตัวรับฟังส่วนกลางดังนี้: window.addEventListener('error', handler) และ window.addEventListener('unhandledrejection', handler) สร้างสแปน กำหนดสถานะด้วย span.setStatus({ code: SpanStatusCode.ERROR }) เพิ่มข้อความข้อผิดพลาดและแทรซสแตกเป็นคุณลักษณะ แล้วจบสแปน
การผสานรวมขอบเขตข้อผิดพลาดของ React
ขอบเขตข้อผิดพลาดของ React จะดักจับข้อผิดพลาดระหว่างการเรนเดอร์ในต้นไม้คอมโพเนนต์ ในเมธอด componentDidCatch ให้สร้างสแปนของ OpenTelemetry ที่แสดงข้อผิดพลาด กำหนดสถานะเป็น ERROR เพิ่ม error.message และ componentStack เป็นคุณลักษณะ แล้วเรียก span.end() วิธีนี้จะส่งข้อผิดพลาดจากการเรนเดอร์ของ React เข้าสู่กระบวนการส่งแทรซแบบกระจายของคุณ
แผนที่ต้นฉบับสำหรับแก้ไขแทรซสแตก
JavaScript สำหรับใช้งานจริงที่ถูกย่อขนาดจะสร้างแทรซสแตกที่อ่านไม่ออก เช่น "a.b at bundle.min.js:1:84721" ให้อัปโหลดแผนที่ต้นฉบับไปยัง Sentry, Datadog หรือกระบวนการส่งข้อมูล OpenTelemetry ระหว่างกระบวนการสร้าง CI/CD เพื่อให้ระบบแก้ไขแทรซสแตกดิบเป็นชื่อไฟล์ TypeScript และหมายเลขบรรทัดต้นฉบับโดยอัตโนมัติ
การสุ่มตัวอย่างเซสชัน RUM
การส่งข้อมูลแทรซทั้งหมดสำหรับทุกเซสชันมีค่าใช้จ่ายสูง ให้ใช้การสุ่มตัวอย่างเซสชัน โดยสุ่มกำหนดตัวบ่งชี้ sessionSampled เมื่อโหลดหน้าเว็บครั้งแรก และจัดเก็บไว้ใน sessionStorage เริ่มต้นใช้งาน OpenTelemetry SDK และส่งแทรซเฉพาะเซสชันที่ถูกสุ่มเลือกเท่านั้น (เช่น 10%) ส่วนเซสชันที่มีข้อผิดพลาดต้องสุ่มตัวอย่าง 100% เสมอ
การแจ้งเตือนเมื่อ Web Vitals แย่ลง
การรายงาน Web Vitals เป็นเมตริกของ OpenTelemetry ช่วยให้แจ้งเตือนตาม SLO ได้ หากค่า P75 LCP สูงเกิน 2.5 วินาทีในเซสชันมากกว่า 5% ภายในช่วงเวลา 1 ชั่วโมง ให้ส่งการแจ้งเตือน วิธีนี้ทำให้ทีมวิศวกรรมได้รับสัญญาณที่นำไปดำเนินการได้และเชื่อมโยงโดยตรงกับประสบการณ์ของผู้ใช้ แทนที่จะอาศัยเพียงเมตริกของโครงสร้างพื้นฐานแบ็กเอนด์
ฟังก์ชันเรียกกลับ onLCP ของ Web Vitals
ฟังก์ชันเรียกกลับ onLCP จากไลบรารี web-vitals จะทำงานเมื่อใด
ทบทวนบทเรียน
ไลบรารี web-vitals มีฟังก์ชันเรียกกลับอย่างง่ายสำหรับวัด LCP, INP, CLS, FCP และ TTFB ในเบราว์เซอร์ของผู้ใช้จริง ให้รายงานค่าเหล่านี้เป็นเมตริกของ OpenTelemetry เพื่อแจ้งเตือนตาม SLO บันทึกข้อผิดพลาดผ่านตัวรับฟังส่วนกลางและขอบเขตข้อผิดพลาดของ React เป็นสแปนของ OpenTelemetry และอัปโหลดแผนที่ต้นฉบับเพื่อแก้ไขแทรซสแตกที่ถูกย่อขนาด สุ่มตัวอย่างเซสชันเพื่อควบคุมปริมาณข้อมูล พร้อมรักษาความครอบคลุมของข้อผิดพลาดไว้ 100%
คำถามที่พบบ่อย
บทเรียน “การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ”
เก็บ LCP, FID, CLS และเครื่องหมายประสิทธิภาพแบบกำหนดเองเป็นเมตริก OTel ด้วยไลบรารี web-vitals คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม
ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสังเกตการณ์ส่วนหน้า: อะไรและเหตุใดจึงสำคัญ
- ร่องรอย OpenTelemetry จากเบราว์เซอร์
- การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ
- การเชื่อมโยงร่องรอยส่วนหน้าและส่วนหลัง