äžçæ°Žæºã®ãã©ãŠã¶ããã©ãŒãã³ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããããã®å æ¬çãªã¬ã€ãããªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã°ïŒRUMïŒãåæãã¹ããããŒã¿åæãå®è£ ããã°ããŒãã«ãªããã©ãŒãã³ã¹æåãè²æããŠããžãã¹ã®æé·ãä¿é²ããæ¹æ³ãåŠã³ãŸãã
Browser Performance Infrastructure: A Complete Implementation Guide
仿¥ã®ããžã¿ã«ãã¡ãŒã¹ãã®äžçã§ã¯ãWebãµã€ããã¢ããªã±ãŒã·ã§ã³ã¯åãªãããŒã±ãã£ã³ã°ããŒã«ã§ã¯ãããŸãããäž»èŠãªåºèã§ãããéèŠãªãµãŒãã¹æäŸãã£ãã«ã§ãããå€ãã®å Žåããã©ã³ããšã®æåã®æ¥ç¹ã§ããã°ããŒãã«ãªèŠèŽè ã«ãšã£ãŠããã®ããžã¿ã«äœéšã¯ãã©ã³ãäœéšã§ããããŒãæéã®ããããªå·®ããå¿ å®ãªé¡§å®¢ãšå€±ãããæ©äŒãšã®éãã«ãªãå¯èœæ§ããããŸããããããå€ãã®çµç¹ã¯ãã¢ãããã¯ãªããã©ãŒãã³ã¹ä¿®æ£ã«ãšã©ãŸãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã枬å®ãçè§£ããäžè²«ããŠæ¹åããããã®äœç³»çãªæ¹æ³ãæ¬ ããŠããŸããããã§ãå ç¢ãªãã©ãŠã¶ããã©ãŒãã³ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ã圹ç«ã¡ãŸãã
ãã®ã¬ã€ãã¯ãäžçæ°Žæºã®ããã©ãŒãã³ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ãèšèšãæ§ç¯ãéçšããããã®å®å šãªéåçãæäŸããŸããã¢ãã¿ãªã³ã°ã®éèŠãªæ±ãããŒã¿ãã€ãã©ã€ã³ã®æè¡ã¢ãŒããã¯ãã£ããããŠæãéèŠãªããšã«ãããã©ãŒãã³ã¹ãäŒæ¥ã®æåã«çµ±åããŠãææçŸ©ãªããžãã¹ææãäžããæ¹æ³ã«ã€ããŠãçè«ããå®è·µã«ç§»ããŸããããªãããšã³ãžãã¢ããããã¯ããããŒãžã£ãŒããŸãã¯ãã¯ãããžãŒãªãŒããŒã®ãããã§ãã£ãŠãããã®ã¬ã€ãã¯ãããã©ãŒãã³ã¹ãæç¶å¯èœãªç«¶äºäžã®åªäœæ§ã«ããã·ã¹ãã ãæè·ããå®è£ ããããã®ç¥èãæäŸããŸãã
Chapter 1: The 'Why' - The Business Case for Performance Infrastructure
å®è£ ã®æè¡çãªè©³çްã«å ¥ãåã«ã匷åãªããžãã¹ã±ãŒã¹ãæ§ç¯ããããšãéèŠã§ããããã©ãŒãã³ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯åãªãæè¡ãããžã§ã¯ãã§ã¯ãªããæŠç¥çæè³ã§ããåçããšã³ã²ãŒãžã¡ã³ããæé·ãšãã£ãããžãã¹ã®èšèã§ãã®äŸ¡å€ãæç¢ºã«è¡šçŸã§ããå¿ èŠããããŸãã
Beyond Speed: Connecting Performance to Business KPIs
ç®æšã¯ãåã«ç©äºããé«éãã«ããããšã§ã¯ãããŸãããããžãã¹ã«ãšã£ãŠéèŠãªäž»èŠæ¥çžŸè©äŸ¡ææšïŒKPIïŒãæ¹åããããšã§ããäŒè©±ãçµã¿ç«ãŠãæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- Conversion Rates: ããã¯æãçŽæ¥çãªãªã³ã¯ã§ããAmazonãWalmartãZalandoãªã©ã®ã°ããŒãã«äŒæ¥ããã®å€æ°ã®ã±ãŒã¹ã¹ã¿ãã£ã§ãããŒãžããŒãã®é«éåãšã³ã³ããŒãžã§ã³çã®åäžãšã®éã«æç¢ºãªçžé¢é¢ä¿ãããããšã瀺ãããŠããŸããeã³ããŒã¹ãµã€ãã®å ŽåãããŒãæéã100msæ¹åããããšãåçãå€§å¹ ã«åäžããå¯èœæ§ããããŸãã
- User Engagement: ããé«éã§å¿çæ§ã®é«ããšã¯ã¹ããªãšã³ã¹ã¯ããŠãŒã¶ãŒãããé·ãæ»åšããããå€ãã®ããŒãžã衚瀺ããã³ã³ãã³ããšããæ·±ã察話ããããšã奚å±ããŸããããã¯ãã»ãã·ã§ã³æéãšæ©èœã®æ¡çšãéèŠãªææšã§ããã¡ãã£ã¢ãµã€ãããœãŒã·ã£ã«ãã©ãããã©ãŒã ãSaaSã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠã§ãã
- Bounce Rates & User Retention: 第äžå°è±¡ã¯éèŠã§ããåæããŒããé ãããšãããŠãŒã¶ãŒããµã€ããæŸæ£ããäž»ãªçç±ã§ããããã©ãŒãã³ã¹ã®é«ããšã¯ã¹ããªãšã³ã¹ã¯ä¿¡é Œãç¯ãããŠãŒã¶ãŒãæ»ã£ãŠããããšã奚å±ããŸãã
- Search Engine Optimization (SEO): Googleãªã©ã®æ€çŽ¢ãšã³ãžã³ã¯ãã³ã¢ãŠã§ããã€ã¿ã«ïŒCWVïŒãå«ãããŒãžãšã¯ã¹ããªãšã³ã¹ã·ã°ãã«ãã©ã³ãã³ã°èŠå ãšããŠäœ¿çšããŸããããã©ãŒãã³ã¹ã¹ã³ã¢ãäœããšãæ€çŽ¢çµæã§ã®è¡šç€ºã«çŽæ¥åœ±é¿ãããªãŒã¬ããã¯ãã©ãã£ãã¯ã«ã°ããŒãã«ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- Brand Perception: é«éã§ã·ãŒã ã¬ã¹ãªããžã¿ã«ãšã¯ã¹ããªãšã³ã¹ã¯ããããã§ãã·ã§ãã«ã§ä¿¡é Œã§ãããšèªèãããŸããé ããŠããã¡ãªããšã¯ã¹ããªãšã³ã¹ã¯ããã®å察ã瀺åããŠããŸãããã®èªèã¯ãã©ã³ãå šäœã«åã³ããŠãŒã¶ãŒã®ä¿¡é Œãšãã€ã€ã«ãã£ã«åœ±é¿ãäžããŸãã
The Cost of Inaction: Quantifying the Impact of Poor Performance
æè³ã確ä¿ããã«ã¯ãäœãããªãããšã®ã³ã¹ãã匷調ããå¿ èŠããããŸããã°ããŒãã«ãªèŠç¹ããããã©ãŒãã³ã¹ãèŠãŠåé¡ãçµã¿ç«ãŠãŸãããœãŠã«ã§å ãã¡ã€ããŒã€ã³ã¿ãŒããããåãããã€ãšã³ãã®ã©ãããããã䜿çšããŠãããŠãŒã¶ãŒã®ãšã¯ã¹ããªãšã³ã¹ã¯ããµã³ããŠãã§å€åãã3Gæ¥ç¶ãåãããããã¬ã³ãžã®ã¹ããŒããã©ã³ã䜿çšããŠãããŠãŒã¶ãŒã®ãšã¯ã¹ããªãšã³ã¹ãšã¯å€§ããç°ãªããŸããããã©ãŒãã³ã¹ã«å¯Ÿããåäžã®ã¢ãããŒãã§ã¯ãã°ããŒãã«ãªèŠèŽè ã®å€§éšåã倱æããŸãã
æ¢åã®ããŒã¿ã䜿çšããŠã±ãŒã¹ãæ§ç¯ããŸããåºæ¬çãªåæãããå Žåã¯ã次ã®ãããªè³ªåãããŸããæŽå²çã«ãããã¯ãŒã¯ãé ãç¹å®ã®åœã®ãŠãŒã¶ãŒã¯ãé¢è±çãé«ãã§ããïŒã¢ãã€ã«ãŠãŒã¶ãŒã¯ããã¹ã¯ããããŠãŒã¶ãŒãããäœãå²åã§ã³ã³ããŒãžã§ã³ããŸããïŒãããã®è³ªåã«çããããšã§ãããã©ãŒãã³ã¹ã®äœäžã«ããçŸåšå€±ãããŠãã倧ããªåçæ©äŒãæããã«ããããšãã§ããŸãã
Chapter 2: The Core Pillars of Performance Monitoring
å æ¬çãªããã©ãŒãã³ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ããªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã°ïŒRUMïŒãšåæã¢ãã¿ãªã³ã°ãšãã2ã€ã®è£å®çãªã¢ãã¿ãªã³ã°ã®æ±ã®äžã«æ§ç¯ãããŠããŸããäžæ¹ã ãã䜿çšãããšããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®äžå®å šãªå šäœåãåŸãããŸãã
Pillar 1: Real User Monitoring (RUM) - The Voice of Your Users
What is RUM? ãªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã°ã¯ãå®éã®ãŠãŒã¶ãŒã®ãã©ãŠã¶ããçŽæ¥ããã©ãŒãã³ã¹ãšãšã¯ã¹ããªãšã³ã¹ããŒã¿ããã£ããã£ããŸããããã¯ããã·ãã¢ãã¿ãªã³ã°ã®äžçš®ã§ãããŒãžäžã®å°ããªJavaScriptã¹ããããããŠãŒã¶ãŒã®ã»ãã·ã§ã³äžã«ããŒã¿ãåéããããŒã¿åéãšã³ããã€ã³ãã«éãè¿ããŸããRUMã¯ã次ã®è³ªåã«çããŸãããç§ã®ãŠãŒã¶ãŒã®å®éã®äœéšã¯ã©ã®ãããªãã®ã§ããïŒã
Key Metrics to Track with RUM:
- Core Web Vitals (CWV): Googleã®ãŠãŒã¶ãŒäžå¿ã®ã¡ããªãã¯ã¯ãçŽ æŽãããåºçºç¹ã§ãã
- Largest Contentful Paint (LCP): ç¥èŠãããããŒãããã©ãŒãã³ã¹ã枬å®ããŸããããŒãžã®ã¡ã€ã³ã³ã³ãã³ããããŒããããå¯èœæ§ãé«ãæç¹ãããŒã¯ããŸãã
- Interaction to Next Paint (INP): First Input DelayïŒFIDïŒã«ä»£ããæ°ããã³ã¢ãŠã§ããã€ã¿ã«ããã¹ãŠã®ã¯ãªãã¯ãã¿ãããããã³ããŒãžã©ã€ããµã€ã¯ã«å šäœã§ã®ããŒæŒäžã®ã¬ã€ãã³ã·ããã£ããã£ãããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«å¯Ÿããå šäœçãªå¿çæ§ã枬å®ããŸãã
- Cumulative Layout Shift (CLS): èŠèŠçãªå®å®æ§ã枬å®ããŸãããŠãŒã¶ãŒãçµéšããäºæããªãã¬ã€ã¢ãŠãã·ããã®éãå®éåããŸãã
- Other Foundational Metrics:
- Time to First Byte (TTFB): ãµãŒããŒã®å¿çæ§ã枬å®ããŸãã
- First Contentful Paint (FCP): ç»é¢ã«ã³ã³ãã³ããã¬ã³ããªã³ã°ãããæåã®æç¹ãããŒã¯ããŸãã
- Navigation and Resource Timings: ãã©ãŠã¶ã®Performance APIã«ãã£ãŠæäŸããããããŒãžäžã®ãã¹ãŠã®ã¢ã»ããã®è©³çްãªã¿ã€ãã³ã°ã
Essential Dimensions for RUM Data: çã®ã¡ããªãã¯ã¯ã³ã³ããã¹ãããªããšåœ¹ã«ç«ã¡ãŸãããå®çšçãªæŽå¯ãåŸãã«ã¯ã次ã®ãããªãã£ã¡ã³ã·ã§ã³ã§ããŒã¿ãã¹ã©ã€ã¹ã¢ã³ããã€ã¹ããå¿ èŠããããŸãã
- Geography: åœãå°åãéœåžã
- Device Type: ãã¹ã¯ããããã¢ãã€ã«ãã¿ãã¬ããã
- Operating System & Browser: OSããŒãžã§ã³ããã©ãŠã¶ããŒãžã§ã³ã
- Network Conditions: Network Information APIã䜿çšããŠãæå¹ãªæ¥ç¶ã¿ã€ãïŒäŸïŒã4gããã3gãïŒããã£ããã£ããŸãã
- Page Type/Route: ããŒã ããŒãžã補åããŒãžãæ€çŽ¢çµæã
- User State: ãã°ã€ã³ãŠãŒã¶ãŒãšå¿åãŠãŒã¶ãŒã
- Application Version/Release ID: ããã©ãŒãã³ã¹ã®å€æŽããããã€ã¡ã³ããšé¢é£ä»ããŸãã
Choosing a RUM Solution (Build vs. Buy): Buying åçšãœãªã¥ãŒã·ã§ã³ïŒäŸïŒDatadogãNew RelicãAkamai mPulseãSentryïŒã¯ãè¿ éãªã»ããã¢ãããæŽç·Žãããããã·ã¥ããŒããããã³å°çšã®ãµããŒããæäŸããŸããããã¯ãããã«éå§ããå¿ èŠãããããŒã ã«ãšã£ãŠæé©ãªéžæè¢ã§ãã Building Boomerang.jsã®ãããªãªãŒãã³ãœãŒã¹ããŒã«ã䜿çšããŠç¬èªã®RUMãã€ãã©ã€ã³ãæ§ç¯ãããšãç©¶æ¥µã®æè»æ§ããã³ããŒããã¯ã€ã³ã®ãŒããããã³ããŒã¿ã«å¯Ÿããå®å šãªå¶åŸ¡ãåŸãããŸãããã ããããŒã¿ã®åéãåŠçãããã³èŠèŠåã¬ã€ã€ãŒãæ§ç¯ããã³ç¶æããã«ã¯ãããªãã®ãšã³ãžãã¢ãªã³ã°äœæ¥ãå¿ èŠã§ãã
Pillar 2: Synthetic Monitoring - Your Controlled Laboratory
What is Synthetic Monitoring? åæã¢ãã¿ãªã³ã°ã«ã¯ãã¹ã¯ãªãããšèªååããããã©ãŠã¶ã䜿çšããŠãåºå®ãããã¹ã±ãžã¥ãŒã«ã§ãã°ããŒãã«ãªå¶åŸ¡ãããå ŽæããWebãµã€ããç©æ¥µçã«ãã¹ãããããšãå«ãŸããŸããäžè²«æ§ã®ããå埩å¯èœãªç°å¢ã䜿çšããŠãããã©ãŒãã³ã¹ã枬å®ããŸããåæãã¹ãã¯ã次ã®è³ªåã«çããŸãããç§ã®ãµã€ãã¯çŸåšãäž»èŠãªå ŽæããæåŸ ã©ããã«å®è¡ãããŠããŸããïŒã
Key Use Cases for Synthetic Monitoring:
- Regression Detection: ãã¹ãŠã®ã³ãŒã倿ŽåŸã«æ¬çªç°å¢ãŸãã¯æ¬çªç°å¢ã«å¯ŸããŠãã¹ããå®è¡ããããšã«ããããŠãŒã¶ãŒã«åœ±é¿ãäžããåã«ããã©ãŒãã³ã¹ã®äœäžããã£ããã§ããŸãã
- Competitive Benchmarking: ç«¶åä»ç€Ÿã®ãµã€ãã«å¯ŸããŠåããã¹ããå®è¡ããŠãåžå Žã§ã®ç«¶äºåãçè§£ããŸãã
- Availability and Uptime Monitoring: ç°¡åãªåæãã§ãã¯ã«ããããµã€ããããŸããŸãªã°ããŒãã«ãªèŠç¹ãããªã³ã©ã€ã³ã§æ©èœããŠãããšããä¿¡é Œã§ããã·ã°ãã«ãæäŸã§ããŸãã
- Deep Diagnostics: WebPageTestã®ãããªããŒã«ã¯ãRUMããŒã¿ã«ãã£ãŠç¹å®ãããè€éãªããã©ãŒãã³ã¹ã®åé¡ããããã°ããã®ã«éåžžã«è²Žéãªè©³çްãªãŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒãããã£ã«ã ã¹ããªãããããã³CPUãã¬ãŒã¹ãæäŸããŸãã
Popular Synthetic Tools:
- WebPageTest: 詳现ãªããã©ãŒãã³ã¹åæã®ããã®æ¥çæšæºããããªãã¯ã€ã³ã¹ã¿ã³ã¹ã䜿çšããããå éšãã¹ãçšã«ãã©ã€ããŒãã€ã³ã¹ã¿ã³ã¹ãã»ããã¢ããã§ããŸãã
- Google Lighthouse: ããã©ãŒãã³ã¹ãã¢ã¯ã»ã·ããªãã£ãªã©ãç£æ»ããããã®ãªãŒãã³ãœãŒã¹ããŒã«ãChrome DevToolsãã³ãã³ãã©ã€ã³ããããŸãã¯Lighthouse CIã䜿çšããŠCI/CDãã€ãã©ã€ã³ã®äžéšãšããŠå®è¡ã§ããŸãã
- Commercial Platforms: SpeedCurveãCalibreãªã©ã®ãµãŒãã¹ã¯ãæŽç·Žãããåæãã¹ããæäŸããå€ãã®å ŽåRUMããŒã¿ãšçµã¿åãããŠãçµ±åããããã¥ãŒãæäŸããŸãã
- Custom Scripting: PlaywrightãPuppeteerã®ãããªãã¬ãŒã ã¯ãŒã¯ã䜿çšãããšãè€éãªãŠãŒã¶ãŒãžã£ãŒããŒã¹ã¯ãªããïŒäŸïŒã«ãŒãã«è¿œå ããã°ã€ã³ïŒãäœæãããã®ããã©ãŒãã³ã¹ã枬å®ã§ããŸãã
RUM and Synthetic: A Symbiotic Relationship
ã©ã¡ãã®ããŒã«ãåç¬ã§ã¯ååã§ã¯ãããŸããããããã¯äžç·ã«æé©ã«æ©èœããŸãã
RUMã¯äœãèµ·ãã£ãŠããããæããŠãããŸããåæã¯ãªããçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
äžè¬çãªã¯ãŒã¯ãããŒïŒRUMããŒã¿ã¯ãã¢ãã€ã«ããã€ã¹äžã®ãã©ãžã«ã®ãŠãŒã¶ãŒã®75ããŒã»ã³ã¿ã€ã«ã®LCPã«äœäžã瀺ããŠããŸããããã¯ãäœãã§ããæ¬¡ã«ãçµããã3Gæ¥ç¶ãããã¡ã€ã«ã䜿çšããŠããµã³ããŠãã®å ŽæããWebPageTestã䜿çšããŠåæãã¹ããæ§æããã·ããªãªãåçŸããŸããçµæãšããŠåŸããããŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒããšèšºæã¯ããçç±ããç¹å®ããã®ã«åœ¹ç«ã¡ãŸãããããããæ°ããæé©åãããŠããªãããŒããŒã€ã¡ãŒãžããããã€ãããŸããã
Chapter 3: Designing and Building Your Infrastructure
åºç€ãšãªãæŠå¿µãæŽã£ãã®ã§ãããŒã¿ãã€ãã©ã€ã³ãèšèšããŸããããããã«ã¯ãåéãã¹ãã¬ãŒãž/åŠçãããã³èŠèŠå/ã¢ã©ãŒããšãã3ã€ã®äž»èŠãªæ®µéãå«ãŸããŸãã
Step 1: Data Collection and Ingestion
ç®æšã¯ã枬å®ããŠãããµã€ãã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããã«ãããã©ãŒãã³ã¹ããŒã¿ã確å®ã«å¹ççã«åéããããšã§ãã
- RUM Data Beacon: RUMã¹ã¯ãªããã¯ã¡ããªãã¯ãåéãããã€ããŒãïŒãããŒã³ã³ãïŒã«ãã³ãã«ããŸãããã®ããŒã³ã³ã¯ãåéãšã³ããã€ã³ãã«éä¿¡ããå¿ èŠããããŸããããã«ã¯`navigator.sendBeaconïŒïŒ`APIã䜿çšããããšãéèŠã§ããããã¯ãããŒãžã¢ã³ããŒããé ãããããä»ã®ãããã¯ãŒã¯ãªã¯ãšã¹ããšç«¶åãããããã«åæããŒã¿ãéä¿¡ããããã«èšèšãããŠãããç¹ã«ã¢ãã€ã«ã§ã®ããŒã¿åéã®ä¿¡é Œæ§ãé«ããŸãã
- Synthetic Data Generation: åæãã¹ãã®å ŽåãããŒã¿åéã¯ãã¹ãå®è¡ã®äžéšã§ããLighthouse CIã®å Žåãããã¯JSONåºåãä¿åããããšãæå³ããŸããWebPageTestã®å Žåãããã¯APIã«ãã£ãŠè¿ãããè±å¯ãªããŒã¿ã§ããã«ã¹ã¿ã ã¹ã¯ãªããã®å Žåãããã©ãŒãã³ã¹ããŒã¯ãæç€ºçã«æž¬å®ããã³èšé²ããŸãã
- Ingestion Endpoint: ããã¯ãRUMããŒã³ã³ãåä¿¡ããHTTPãµãŒããŒã§ããã°ããŒãã«ãŠãŒã¶ãŒãããŒã¿ãéä¿¡ããéã®ã¬ã€ãã³ã·ãæå°éã«æããããã«ãå¯çšæ§ãé«ããã¹ã±ãŒã©ãã«ã§ãå°ççã«åæ£ããŠããå¿ èŠããããŸãããã®å¯äžã®ä»äºã¯ãããŒã¿ãè¿ éã«åä¿¡ããéåæåŠçã®ããã«ã¡ãã»ãŒãžãã¥ãŒïŒKafkaãAWS KinesisãGoogle Pub/Subãªã©ïŒã«æž¡ãããšã§ããããã«ãããåéãåŠçããåé¢ãããã·ã¹ãã ãå埩åãé«ãŸããŸãã
Step 2: Data Storage and Processing
ããŒã¿ãã¡ãã»ãŒãžãã¥ãŒã«å ¥ããšãåŠçãã€ãã©ã€ã³ãããŒã¿ãæ€èšŒããšã³ãªãããããã³é©åãªããŒã¿ããŒã¹ã«ä¿åããŸãã
- Data Enrichment: ããã§ã貎éãªã³ã³ããã¹ãã远å ããŸããçã®ããŒã³ã³ã«ã¯ãIPã¢ãã¬ã¹ãšãŠãŒã¶ãŒãšãŒãžã§ã³ãæååã®ã¿ãå«ãŸããŠããå ŽåããããŸããåŠçãã€ãã©ã€ã³ã¯ã次ã®åŠçãå®è¡ããå¿
èŠããããŸãã
- Geo-IP Lookup: IPã¢ãã¬ã¹ãåœãå°åãéœåžã«å€æããŸãã
- User-Agent Parsing: UAæååãããã©ãŠã¶åãOSãããã€ã¹ã¿ã€ããªã©ã®æ§é åãããããŒã¿ã«å€æããŸãã
- Joining with Metadata: ã»ãã·ã§ã³äžã«ã¢ã¯ãã£ãã ã£ãã¢ããªã±ãŒã·ã§ã³ãªãªãŒã¹IDãA/Bãã¹ãããªã¢ã³ãããŸãã¯æ©èœãã©ã°ãªã©ã®æ å ±ã远å ããŸãã
- Choosing a Database: ããŒã¿ããŒã¹ã®éžæã¯ãèŠæš¡ãšã¯ãšãªãã¿ãŒã³ã«ãã£ãŠç°ãªããŸãã
- Time-Series Databases (TSDB): InfluxDBãTimescaleDBãPrometheusã®ãããªã·ã¹ãã ã¯ãã¿ã€ã ã¹ã¿ã³ãä»ãããŒã¿ãåŠçããäžå®æéã«ããã£ãŠã¯ãšãªãå®è¡ããããã«æé©åãããŠããŸããéèšãããã¡ããªãã¯ãä¿åããã®ã«æé©ã§ãã
- Analytics Data Warehouses: å€§èŠæš¡ãªRUMã®å Žåããã¹ãŠã®åäžã®ããŒãžãã¥ãŒãä¿åããè€éãªã¢ãããã¯ã¯ãšãªãå®è¡ããå Žåã¯ãGoogle BigQueryãAmazon RedshiftãClickHouseãªã©ã®åæåããŒã¿ããŒã¹ãŸãã¯ããŒã¿ãŠã§ã¢ããŠã¹ãåªããéžæè¢ã§ãããããã¯å€§èŠæš¡ãªåæã¯ãšãªçšã«èšèšãããŠããŸãã
- Aggregation and Sampling: ãã©ãã£ãã¯ã®å€ããµã€ãã®ãã¹ãŠã®åäžã®ããã©ãŒãã³ã¹ããŒã³ã³ãä¿åãããšãéåžžã«ã³ã¹ãããããå¯èœæ§ããããŸããäžè¬çãªæŠç¥ã¯ã詳现ãªãããã°ã®ããã«çæéïŒäŸïŒ7æ¥éïŒçã®ããŒã¿ãä¿åããé·æçãªåŸåã®ããã«äºåéèšãããããŒã¿ïŒããŸããŸãªãã£ã¡ã³ã·ã§ã³ã®ããŒã»ã³ã¿ã€ã«ããã¹ãã°ã©ã ãã«ãŠã³ããªã©ïŒãä¿åããããšã§ãã
Step 3: Data Visualization and Alerting
çã®ããŒã¿ã¯çè§£ã§ããªãå Žåã¯åœ¹ã«ç«ã¡ãŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®æçµã¬ã€ã€ãŒã¯ãããŒã¿ã«ã¢ã¯ã»ã¹å¯èœã§å®çšçã«ããããšã§ãã
- Building Effective Dashboards: åçŽãªå¹³åããŒã¹ã®æãç·ã°ã©ããè¶
ããŠãã ãããå¹³åå€ã¯å€ãå€ãé ããäžè¬çãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã衚ããŠããŸãããããã·ã¥ããŒãã«ã¯æ¬¡ã®æ©èœãå¿
èŠã§ãã
- Percentiles: 75ããŒã»ã³ã¿ã€ã«ïŒp75ïŒã90ããŒã»ã³ã¿ã€ã«ïŒp90ïŒãããã³95ããŒã»ã³ã¿ã€ã«ïŒp95ïŒã远跡ããŸããp75ã¯ãå¹³åãããã¯ããã«åªããäžè¬çãªãŠãŒã¶ãŒã®ãšã¯ã¹ããªãšã³ã¹ã衚ããŠããŸãã
- Histograms and Distributions: ã¡ããªãã¯ã®å®å šãªååžã瀺ããŸããLCPã¯äºå³°æ§ã§ããïŒã€ãŸããé«éãªãŠãŒã¶ãŒã®ã°ã«ãŒããšéåžžã«äœéãªãŠãŒã¶ãŒã®ã°ã«ãŒãããããŸããïŒãã¹ãã°ã©ã ã¯ãããæããã«ããŸãã
- Time-Series Views: åŸåãšååž°ãç¹å®ããããã«ãããŒã»ã³ã¿ã€ã«ãæéãšãšãã«ããããããŸãã
- Segmentation Filters: æãéèŠãªéšåããŠãŒã¶ãŒãåœãããã€ã¹ãããŒãžã¿ã€ãããªãªãŒã¹ããŒãžã§ã³ãªã©ã§ããã·ã¥ããŒãããã£ã«ã¿ãªã³ã°ããŠãåé¡ãç¹å®ã§ããããã«ããŸãã
- Visualization Tools: GrafanaïŒæç³»åããŒã¿çšïŒãSupersetã®ãããªãªãŒãã³ãœãŒã¹ããŒã«ã¯åŒ·åãªãªãã·ã§ã³ã§ããLookerãTableauã®ãããªåçšBIããŒã«ãããŒã¿ãŠã§ã¢ããŠã¹ã«æ¥ç¶ããŠãããè€éãªããžãã¹ã€ã³ããªãžã§ã³ã¹ããã·ã¥ããŒããäœæããããšãã§ããŸãã
- Intelligent Alerting: ã¢ã©ãŒãã¯ãä¿¡å·ãé«ãããã€ãºãå°ãªãå¿ èŠããããŸããéçãªãããå€ïŒäŸïŒãLCP> 4ç§ãïŒã§ã¢ã©ãŒããåºããªãã§ãã ããã代ããã«ãç°åžžæ€åºãŸãã¯çžå¯Ÿçãªå€åã¢ã©ãŒããå®è£ ããŸããããšãã°ããã¢ãã€ã«ã®ããŒã ããŒãžã®p75 LCPããå é±ã®åææãšæ¯èŒããŠ15ïŒ ä»¥äžå¢å ããå Žåã«ã¢ã©ãŒããåºãããããã¯ãèªç¶ãªæ¥æ¬¡ããã³é±æ¬¡ã®ãã©ãã£ãã¯ãã¿ãŒã³ãèæ ®ã«å ¥ããŠããŸããã¢ã©ãŒãã¯ãSlackãMicrosoft Teamsã®ãããªã³ã©ãã¬ãŒã·ã§ã³ãã©ãããã©ãŒã ã«éä¿¡ããJiraã®ãããªã·ã¹ãã ã§ãã±ãããèªåçã«äœæããå¿ èŠããããŸãã
Chapter 4: From Data to Action: Integrating Performance into Your Workflow
ããã·ã¥ããŒãã®ã¿ãçæããã€ã³ãã©ã¹ãã©ã¯ãã£ã¯å€±æã§ãã究極ã®ç®æšã¯ãã¢ã¯ã·ã§ã³ãæšé²ããããã©ãŒãã³ã¹ãå ±æè²¬ä»»ã§ããæåãåµé ããããšã§ãã
Establishing Performance Budgets
ããã©ãŒãã³ã¹äºç®ã¯ãããŒã ãè¶ ããªãããšã«åæããå¶çŽã®ã»ããã§ããæœè±¡çãªç®æšããå ·äœçãªåæ Œ/äžåæ Œã®ã¡ããªãã¯ã«ããã©ãŒãã³ã¹ãå€ããŸããäºç®ã¯æ¬¡ã®ããã«ãªããŸãã
- Metric-based: ã補åããŒãžã®p75 LCPã¯2.5ç§ãè¶ ããŠã¯ãªããŸãããã
- Quantity-based: ãããŒãžäžã®JavaScriptã®åèšãµã€ãºã¯170 KBãè¶ ããŠã¯ãªããŸããããŸãã¯ãåèšã§50ãè¶ ãããªã¯ãšã¹ããäœæããªãã§ãã ãããã
How to set a budget? æ°åãä»»æã«éžæããªãã§ãã ãããç«¶åä»ç€Ÿã®åæãã¿ãŒã²ããããã€ã¹ãšãããã¯ãŒã¯ã§éæå¯èœãªããšããŸãã¯ããžãã¹ç®æšã«åºã¥ããŠãã ãããæ§ãããªäºç®ããå§ããŠãæéããããŠå³ããããŸãã
Enforcing budgets: äºç®ã匷å¶ããæã广çãªæ¹æ³ã¯ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çãããã€ã¡ã³ãïŒCI/CDïŒãã€ãã©ã€ã³ã«çµ±åããããšã§ããLighthouse CIã®ãããªããŒã«ã䜿çšãããšããã¹ãŠã®ãã«ãªã¯ãšã¹ãã§ããã©ãŒãã³ã¹ç£æ»ãå®è¡ã§ããŸããPRãäºç®ãè¶ éããå Žåããã«ãã¯å€±æãããªã°ã¬ãã·ã§ã³ãæ¬çªç°å¢ã«å°éããã®ãé²ããŸãã
Creating a Performance-First Culture
ãã¯ãããžãŒã ãã§ã¯ãããã©ãŒãã³ã¹ã®åé¡ã解決ã§ããŸããã誰ããæææš©ãæããæåçãªå€åãå¿ èŠã§ãã
- Shared Responsibility: ããã©ãŒãã³ã¹ã¯åãªããšã³ãžãã¢ãªã³ã°ã®åé¡ã§ã¯ãããŸããããããã¯ããããŒãžã£ãŒã¯ãæ°ããæ©èœèŠä»¶ã«ããã©ãŒãã³ã¹åºæºãå«ããå¿ èŠããããŸãããã¶ã€ããŒã¯ãè€éãªã¢ãã¡ãŒã·ã§ã³ã倧ããªã€ã¡ãŒãžã®ããã©ãŒãã³ã¹ã³ã¹ããèæ ®ããå¿ èŠããããŸããQAãšã³ãžãã¢ã¯ããã¹ãèšç»ã«ããã©ãŒãã³ã¹ãã¹ããå«ããå¿ èŠããããŸãã
- Make it Visible: äž»èŠãªããã©ãŒãã³ã¹ããã·ã¥ããŒãããªãã£ã¹å ã®ç»é¢ãŸãã¯äŒç€Ÿã®ãã£ããã¢ããªã±ãŒã·ã§ã³ã®ç®ç«ã€ãã£ãã«ã«è¡šç€ºããŸããåžžã«è¡šç€ºããããšã§ãåžžã«å¿µé ã«çœ®ããŠããããšãã§ããŸãã
- Align Incentives: ããã©ãŒãã³ã¹ã®æ¹åãããŒã ãŸãã¯å人ã®ç®æšïŒOKRïŒã«é¢é£ä»ããŸããããŒã ãæ©èœã®æäŸãšãšãã«ããã©ãŒãã³ã¹ã¡ããªãã¯ã§è©äŸ¡ãããå Žåã圌ãã®åªå é äœã¯å€ãããŸãã
- Celebrate Wins: ããŒã ãäž»èŠãªã¡ããªãã¯ãæ¹åããããšã«æåããå Žåã¯ããããç¥ããŸããçµæãåºãå ±æããæè¡çãªæ¹åïŒäŸïŒãLCPã500msåæžããŸãããïŒãããžãã¹ãžã®åœ±é¿ïŒäŸïŒãã¢ãã€ã«ã³ã³ããŒãžã§ã³ã2ïŒ å¢å ããŸãããïŒã«å¿ ãé¢é£ä»ããŠãã ããã
A Practical Debugging Workflow
ããã©ãŒãã³ã¹ã®äœäžãçºçããå Žåãæ§é åãããã¯ãŒã¯ãããŒãæã€ããšãéèŠã§ãã
- Alert: èªåã¢ã©ãŒããçºç«ããp75 LCPã®å€§å¹ ãªäœäžããªã³ã³ãŒã«ããŒã ã«éç¥ããŸãã
- Isolate: ãšã³ãžãã¢ã¯RUMããã·ã¥ããŒãã䜿çšããŠãäœäžãåé¢ããŸããã¢ã©ãŒãã«åãããŠæéã§ãã£ã«ã¿ãªã³ã°ãããªãªãŒã¹ããŒãžã§ã³ãããŒãžã¿ã€ããåœã§ã»ã°ã¡ã³ãåããŸãã圌ãã¯ãååž°ãææ°ã®ãªãªãŒã¹ã«é¢é£ä»ããããŠããããšãŒãããã®ãŠãŒã¶ãŒã®ã補å詳现ãããŒãžã«ã®ã¿åœ±é¿ããããšãçºèŠããŸããã
- Analyze: ãšã³ãžãã¢ã¯ãWebPageTestã®ãããªåæããŒã«ã䜿çšããŠããšãŒãããã®å Žæãããã®ããŒãžã«å¯ŸããŠãã¹ããå®è¡ããŸãããŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒãã«ã¯ãã¡ã€ã³ã³ã³ãã³ãã®ã¬ã³ããªã³ã°ããããã¯ãã倧ããªæé©åãããŠããªãã€ã¡ãŒãžãããŠã³ããŒããããŠããããšã瀺ãããŠããŸãã
- Correlate: ãšã³ãžãã¢ã¯ãææ°ã®ãªãªãŒã¹ã®ã³ãããå±¥æŽããã§ãã¯ããæ°ããããŒããŒã€ã¡ãŒãžã³ã³ããŒãã³ãã補å詳现ããŒãžã«è¿œå ãããããšã確èªããŸãã
- Fix & Verify: éçºè ã¯ä¿®æ£ïŒäŸïŒã€ã¡ãŒãžã®é©åãªãµã€ãºèšå®ãšå§çž®ãAVIF/WebPã®ãããªææ°ã®åœ¢åŒã®äœ¿çšïŒãå®è£ ããŸãããããã€ããåã«ãå¥ã®åæãã¹ãã§ä¿®æ£ã確èªããŸãããããã€åŸãRUMããã·ã¥ããŒããç£èŠããŠãp75 LCPãæ£åžžã«æ»ã£ãããšã確èªããŸãã
Chapter 5: Advanced Topics and Future-Proofing
åºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ãæŽã£ãããããé«åºŠãªæ©èœãæ¢çŽ¢ããŠãæŽå¯ãæ·±ããããšãã§ããŸãã
Correlating Performance Data with Business Metrics
究極ã®ç®æšã¯ãããžãã¹ã«å¯Ÿããããã©ãŒãã³ã¹ã®åœ±é¿ãçŽæ¥æž¬å®ããããšã§ããããã«ã¯ãRUMããŒã¿ãããžãã¹åæããŒã¿ãšçµåããããšãå«ãŸããŸãããŠãŒã¶ãŒã»ãã·ã§ã³ããšã«ãRUMããŒã³ã³ãšåæã€ãã³ãïŒäŸïŒãã«ãŒãã«è¿œå ãããè³Œå ¥ãïŒã®äž¡æ¹ã§ã»ãã·ã§ã³IDããã£ããã£ããŸããæ¬¡ã«ãããŒã¿ãŠã§ã¢ããŠã¹ã§ã¯ãšãªãå®è¡ããŠã次ã®ãããªåŒ·åãªè³ªåã«çããããšãã§ããŸãããLCPã2.5ç§æªæºã®ãŠãŒã¶ãŒãšãLCPã4ç§ãè¶ ãããŠãŒã¶ãŒã®ã³ã³ããŒãžã§ã³çã¯ã©ãã§ããïŒãããã¯ãããã©ãŒãã³ã¹äœæ¥ã®ROIã®åè«ã§ããªã蚌æ ãæäŸããŸãã
Segmenting for a Truly Global Audience
ã°ããŒãã«ããžãã¹ã¯ããåªããããã©ãŒãã³ã¹ãã®åäžã®å®çŸ©ãæã€ããšã¯ã§ããŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšãããšãã³ã³ããã¹ãã«åºã¥ããŠãŠãŒã¶ãŒãã»ã°ã¡ã³ãåã§ããŸããåœã ãã§ãªãããã©ãŠã¶APIãæŽ»çšããŠããããã¥ã¢ã³ã¹ã®ãããã¥ãŒãååŸããŸãã
- Network Information API: `effectiveType`ïŒäŸïŒã4gããã3gãããslow-2gãïŒããã£ããã£ããŠããããã¯ãŒã¯ã¿ã€ãã ãã§ãªããå®éã®ãããã¯ãŒã¯å質ã§ã»ã°ã¡ã³ãåããŸãã
- Device Memory API: `navigator.deviceMemory`ã䜿çšããŠããŠãŒã¶ãŒã®ããã€ã¹ã®æ©èœãçè§£ããŸãã1 GBæªæºã®RAMãæèŒãããŠãŒã¶ãŒã«ã¯ããµã€ãã®ãã軜éãªããŒãžã§ã³ãæäŸããããšãéžæã§ããŸãã
The Rise of New Metrics (INP and Beyond)
Webããã©ãŒãã³ã¹ã®ç¶æ³ã¯åžžã«é²åããŠããŸããã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãé©å¿ã§ããã»ã©æè»ã§ããå¿ èŠããããŸããã³ã¢ãŠã§ããã€ã¿ã«ãšããŠã®First Input DelayïŒFIDïŒããInteraction to Next PaintïŒINPïŒãžã®æè¿ã®ç§»è¡ã¯ããã®å¥œäŸã§ããFIDã¯*æåã®*ã€ã³ã¿ã©ã¯ã·ã§ã³ã®é å»¶ã®ã¿ã枬å®ããŸããããINPã¯*ãã¹ãŠã®*ã€ã³ã¿ã©ã¯ã·ã§ã³ã®ã¬ã€ãã³ã·ãèæ ®ããããŒãžå šäœã®å¿çæ§ã®ã¯ããã«åªãã尺床ãæäŸããŸãã
ã·ã¹ãã ãå°æ¥ã«ããã£ãŠä¿è·ããã«ã¯ãããŒã¿åéããã³åŠçã¬ã€ã€ãŒãç¹å®ã®ã¡ããªãã¯ã»ããã«ããŒãã³ãŒããããŠããªãããšã確èªããŠãã ããããã©ãŠã¶APIããæ°ããã¡ããªãã¯ãç°¡åã«è¿œå ããRUMããŒã³ã³ã§åéãéå§ããããŒã¿ããŒã¹ãšããã·ã¥ããŒãã«è¿œå ã§ããããã«ããŸããW3C Web Performance Working Groupããã³ããåºç¯ãªWebããã©ãŒãã³ã¹ã³ãã¥ããã£ãšé£æºããŠãåžžã«å ãè¡ã£ãŠãã ããã
Conclusion: Your Journey to Performance Excellence
ãã©ãŠã¶ã®ããã©ãŒãã³ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããããšã¯éèŠãªåãçµã¿ã§ãããææ°ã®ããžã¿ã«ããžãã¹ãè¡ãããšãã§ããæã圱é¿åã®ããæè³ã®1ã€ã§ããããã©ãŒãã³ã¹ãäºåŸå¯Ÿå¿çãªæ¶ç«æŽ»åãããåçã«çŽæ¥è²¢ç®ããç©æ¥µçã§ããŒã¿é§ååã®èŠåŸã«å€ããŸãã
ããã¯ç®çå°ã§ã¯ãªããæ ã§ããããšãå¿ããªãã§ãã ãããåçŽãªããŒã«ã§ããRUMãšåæã¢ãã¿ãªã³ã°ã®ã³ã¢ãã©ãŒã確ç«ããããšããå§ããŸããåéããããŒã¿ã䜿çšããŠããããªãæè³ã®ããã®ããžãã¹ã±ãŒã¹ãæ§ç¯ããŸããããŒã¿ã广çã«åéãåŠçãããã³èŠèŠåã§ããããŒã¿ãã€ãã©ã€ã³ã®æ§ç¯ã«çŠç¹ãåœãŠãŸããæãéèŠãªã®ã¯ããã¹ãŠã®ããŒã ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«å¯Ÿããæææãæ±ããŠããããã©ãŒãã³ã¹ã®æåãè²ãããšã§ãã
ãã®éåçã«åŸãããšã§ãåé¡ãæ€åºããã ãã§ãªãããŠãŒã¶ãŒãäžçäžã®ã©ãã«ããŠããããé«éã§ãããé åçãªãããæåããããžã¿ã«ãšã¯ã¹ããªãšã³ã¹ãäœæããããã«å¿ èŠãªå®çšçãªæŽå¯ãæäŸããã·ã¹ãã ãæ§ç¯ã§ããŸãã