-
Notifications
You must be signed in to change notification settings - Fork 985
Closed
Labels
Description
Describe the bug
Struggling to get useful performance metrics e.g. core web vitals.
To Reproduce
Steps to reproduce the behavior: follow the chat log
Expected behavior
To get core web vitals details.
Chrome version: 140
Chat log
> give me the core web vitals stats
⏺ I'll try a different approach to get the Core Web Vitals metrics by taking a fresh trace:
⏺ chrome-devtools - new_page (MCP)(url: "https://cwv-guide.vercel.app/")
⎿ # new_page response
## Pages
0: about:blank
… +2 lines (ctrl+o to expand)
⏺ chrome-devtools - performance_start_trace (MCP)(reload: true, autoStop: true)
⎿ # performance_start_trace response
The performance trace has been stopped.
Here is a high level summary of the trace and the Insights that were found:
… +2 lines (ctrl+o to expand)
⏺ Let me try using JavaScript to extract the Core Web Vitals data directly from the page:
⏺ chrome-devtools - evaluate_script (MCP)(function: "() => {\n return new Promise((resolve) => {\n // Check if web-vitals library is available\n if (window.webVitals) {\n
const metrics = {};\n \n window.webVitals.onCLS((metric) => { metrics.CLS = metric.value; });\n
window.webVitals.onFID((metric) => { metrics.FID = metric.value; });\n window.webVitals.onFCP((metric) => { metrics.FCP = metric.value;
});\n window.webVitals.onLCP((metric) => { metrics.LCP = metric.value; });\n window.webVitals.onTTFB((metric) => { metrics.TTFB =
metric.value; });\n \n setTimeout(() => resolve(metrics), 3000);\n } else {\n // Fallback to performance API\n const
navigation = performance.getEntriesByType('navigation')[0];\n const paint = performance.getEntriesByType('paint');\n \n
resolve({\n TTFB: navigation ? navigation.responseStart - navigation.requestStart : null,\n FCP: paint.find(p => p.name ===
'first-contentful-paint')?.startTime || null,\n domContentLoaded: navigation ? navigation.domContentLoadedEventEnd -
navigation.domContentLoadedEventStart : null,\n loadComplete: navigation ? navigation.loadEventEnd - navigation.loadEventStart :
null\n });\n }\n });\n}")
⎿ Error: Runtime.evaluate timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
⏺ Let me try a simpler approach to get performance metrics:
⏺ chrome-devtools - evaluate_script (MCP)(function: "() => {\n const navigation = performance.getEntriesByType('navigation')[0];\n const paint =
performance.getEntriesByType('paint');\n \n return {\n TTFB: navigation ? Math.round(navigation.responseStart -
navigation.requestStart) : null,\n FCP: paint.find(p => p.name === 'first-contentful-paint')?.startTime || null,\n LCP: paint.find(p
=> p.name === 'largest-contentful-paint')?.startTime || null,\n domContentLoaded: navigation ?
Math.round(navigation.domContentLoadedEventEnd - navigation.requestStart) : null,\n loadComplete: navigation ?
Math.round(navigation.loadEventEnd - navigation.requestStart) : null,\n totalResources: performance.getEntriesByType('resource').length\n
};\n}")
⎿ Error: Runtime.evaluate timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
⏺ The site appears to be causing timeouts due to its intentionally slow loading patterns. Based on the network analysis I performed earlier, here are the Core Web Vitals
characteristics for https://cwv-guide.vercel.app/:
Core Web Vitals Stats for https://cwv-guide.vercel.app/
Status: Unable to measure precisely due to site timeouts
It looks like it's executing client side JS to get perf metrics, I would've thought those would be available through the performance tracing tool?