为什么需要性能监控?
网站性能直接影响用户体验和SEO排名。研究表明,页面加载时间每增加1秒,转化率下降7%;超过3秒,53%的用户会离开。性能监控是持续发现和解决问题的基础。
Core Web Vitals核心指标
Google定义的三大核心用户体验指标:
- LCP(最大内容绘制):主要内容加载完成时间,目标<2.5秒
- FID(首次输入延迟):用户首次交互响应时间,目标<100毫秒
- CLS(累积布局偏移):页面元素意外移动程度,目标<0.1
其他重要指标:
- TTFB(首字节时间):反映服务器响应速度,目标<600ms
- FCP(首次内容绘制):首次绘制文字/图像的时间
- TTI(可交互时间):页面完全可交互的时间
主流监控工具
免费工具
- Google PageSpeed Insights:输入URL即可分析,给出分数和优化建议
- WebPageTest:支持多地区测试,提供详细瀑布图
- Lighthouse:Chrome内置,本地分析,集成到DevTools
- GTmetrix:免费版支持历史记录和对比
付费工具
- SpeedCurve:持续监控、竞争对比、性能预算告警
- DataDog:全栈监控,APM+基础设施+真实用户监控
- New Relic:APM工具,定位代码级性能瓶颈
自建监控方案
方案一:Google Analytics(推荐入门)
GA4已内置Core Web Vitals收集,无需额外配置,在”报告 > 体验 > 网站速度”中查看数据。
方案二:Navigation Timing API自建上报
window.addEventListener('load', function() {
const p = performance.getEntriesByType('navigation')[0];
const data = {
ttfb: p.responseStart - p.requestStart,
domReady: p.domContentLoadedEventEnd - p.fetchStart,
fullLoad: p.loadEventEnd - p.fetchStart,
page: location.href
};
// 发送到自己的统计服务
navigator.sendBeacon('/api/perf', JSON.stringify(data));
});
方案三:Prometheus + Grafana(服务器监控)
# 安装node_exporter采集服务器指标
sudo apt install prometheus-node-exporter
# prometheus.yml 添加采集目标
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
# Grafana导入仪表盘模板 ID: 1860
告警配置
Prometheus告警规则示例:
groups:
- name: web_perf
rules:
- alert: SlowResponse
expr: http_request_duration_seconds{quantile="0.95"} > 1
for: 5m
annotations:
summary: "P95响应时间超1秒"
- alert: HighErrorRate
expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
for: 5m
annotations:
summary: "5xx错误率超5%"
告警通知支持邮件、钉钉、企业微信等渠道。
常见性能问题及解决
- TTFB过高(>600ms):升级服务器配置、优化数据库、启用CDN
- LCP过长(>2.5s):压缩大图片(用WebP)、懒加载、异步加载JS
- CLS过大(>0.1):为图片预设宽高、避免动态插入内容
总结
建立网站性能监控体系分三步:选定核心指标(Core Web Vitals)、配置监控工具(GA4入门、Prometheus进阶)、设置告警机制。发现问题后针对性优化,形成持续迭代的闭环。