平台包含两类监控能力:异常监控和性能监控。两者接入方式不同,可以单独启用,也可以同时启用。
通过服务器响应头启用浏览器 Reporting API,收集 CSP 违规、网络错误等浏览器原生异常。
通过页面加载 sdk.js 自动采集 FCP、LCP、CLS、FID、TTFB 等 Web 性能指标。
1注册账号 - 访问平台并注册用户账号
2创建站点 - 在控制台中创建您的站点,获取专属 Token
3接入异常监控 - 在网站服务器配置 Reporting API 响应头
4接入性能监控 - 在页面中加载 sdk.js,开始采集性能指标
异常监控依赖浏览器 Reporting API。创建站点后,进入「站点管理 → 站点详情 → 生成配置」,选择 Nginx、Apache、Node.js 或 IIS,复制系统生成的配置即可。
每个站点都有独立 Token,上报地址固定为 /api/report/<token>。
# Reporting API 上报端点
add_header Reporting-Endpoints 'default="https://api.reportapi.com/api/report/YOUR_SITE_TOKEN"' always;
# CSP 异常上报策略,可按业务需要调整
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; frame-ancestors 'self'; form-action 'self'; report-to default;" always;
YOUR_SITE_TOKEN 替换为站点创建后生成的实际 TokenAuthorization 请求头server 块中,并使用 always 确保错误响应也带上响应头sudo nginx -s reload内容安全策略(CSP)可以帮助您监控资源加载违规和潜在 XSS 风险。首次接入建议先使用只上报不拦截的 Report-Only 模式。
# 只上报,不阻断页面资源,适合灰度测试
add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https:; object-src 'none'; report-to default;" always;
# 验证无误后再切换为强制模式
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https:; object-src 'none'; report-to default;" always;
report-to default - 指定使用 Reporting-Endpoints 中名为 default 的端点default-src 'self' - 默认只允许同源资源script-src - 脚本源策略style-src - 样式源策略img-src - 图片源策略Content-Security-Policy-Report-Only 收集数据,确认无误后再切换到 Content-Security-Policy。
登录控制台后,您可以:
性能监控需要在页面中加载平台提供的 sdk.js。SDK 会自动采集 Web 性能指标,并上报到 /api/report/performance/<token>。
将以下脚本添加到需要监控的页面中,建议放在 </body> 前:
<!-- 建议放在 </body> 前 -->
<script
src="https://api.reportapi.com/static/sdk.js"
data-token="YOUR_SITE_TOKEN">
</script>
说明:
YOUR_SITE_TOKEN 替换为站点创建后生成的实际 Tokensdk.js,不会通过 Reporting API 响应头自动采集https://api.reportapi.com/static/sdk.js 并允许连接上报接口如果您的页面启用了严格 CSP,需要允许脚本加载和接口连接:
script-src 'self' https://api.reportapi.com;
connect-src 'self' https://api.reportapi.com;
FCP - 首次内容绘制LCP - 最大内容绘制CLS - 累计布局偏移FID - 首次输入延迟TTFB - 首字节时间如果使用自有采集逻辑,也可以直接调用性能上报 API:
curl -X POST https://api.reportapi.com/api/report/performance/YOUR_TOKEN \
-H "Content-Type: application/json" \
-d '{
"metrics": [
{
"type": "LCP",
"value": 2300,
"url": "https://your-website.com/page",
"deviceType": "desktop",
"connectionType": "4g"
}
]
}'
POST /api/report/<token>请求体支持浏览器原生 Reporting API 的数组格式,也支持带 reports 字段的对象格式。
请求示例:
curl -X POST https://api.reportapi.com/api/report/YOUR_TOKEN \
-H "Content-Type: application/json" \
-d '{
"reports": [
{
"type": "csp-violation",
"url": "https://your-website.com/page",
"body": {
"blockedURL": "https://malicious.com/script.js",
"effectiveDirective": "script-src",
"documentURL": "https://your-website.com/page"
}
}
]
}'
响应示例:
{
"status": "accepted",
"count": 1
}
202 - 上报已接收403 - Token 无效或站点不可用429 - 当日上报额度已用完可能的原因:
可能的原因:
sdk.jsdata-token 未配置或 Token 错误Reporting API 支持的现代浏览器:
默认情况下,异常数据保留 30 天。您可以在站点设置中调整保留期限。
您可以在浏览器控制台中执行以下代码,触发一次 CSP 违规测试:
// 测试 CSP 违规上报
var script = document.createElement('script');
script.src = 'https://malicious.com/test.js';
document.head.appendChild(script);