0Pricing
React Academy · บทเรียน

การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ

เก็บ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสังเกตการณ์ส่วนหน้า: อะไรและเหตุใดจึงสำคัญ
  2. ร่องรอย OpenTelemetry จากเบราว์เซอร์
  3. การตรวจสอบผู้ใช้จริงและตัวชี้วัดเว็บ
  4. การเชื่อมโยงร่องรอยส่วนหน้าและส่วนหลัง
← กลับไปที่ React Academy