接入检查
装好 SDK 却没看到数时,这一页告诉你按什么顺序查。「系统 → 项目 → 接入」页签里的接入检查会直接告诉你收到了什么、谁发的、丢了多少、为什么。
evstats


接入检查里有什么
| 区域 | 内容 |
|---|---|
| 状态 | 最近一次收到事件的时间;近 24 小时各 SDK(web、go、java、http)的条数 |
| 近 24 小时被丢弃 | 按原因计数,见下表 |
| 入库失败 | 近 24 小时写不进 ClickHouse 的条数 |
| 最近收到的事件 | 近 30 分钟最多 20 条,每 5 秒刷新;可以展开看规范化之后的全部字段 |
项目从未收到数据时,「接入」会自动成为项目详情的默认页签。有项目权限的人都能看;查看完整密钥、轮换密钥只有管理员能做。
丢弃原因
被过滤的事件不入库,但会按原因计数。为了不给探测者线索,SDK 收到的响应里不说明原因,只有管理员在这里看得到。
| 原因 | 含义 | 在哪里改 |
|---|---|---|
| 白名单未命中 | 项目设了域名白名单,页面所在的域名不在里面 | 采集过滤 → 域名白名单 |
| 命中黑名单 | 黑名单开关打开,并且域名在黑名单里 | 采集过滤 → 域名黑名单 |
| 爬虫 | User-Agent 里有 bot、spider、crawler、slurp、bingpreview、headless | 采集过滤 → 丢弃爬虫 |
| 排除 IP | 客户端 IP 命中排除列表(比如办公室出口) | 采集过滤 → 排除 IP |
| 时间过旧 | 事件时间比服务器早 7 天以上 | 检查客户端时钟或补发逻辑 |
| 字段不合法 | 缺事件名、属性超过上限等 | 对照 事件与属性 |
按这个顺序查
| 现象 | 查什么 | 处理 |
|---|---|---|
| 接入检查里一条事件都没有 | 浏览器开发者工具的网络面板,找 /sa 请求 | 没有请求:SDK 没加载或 init 没执行;请求被浏览器拦了:看控制台的跨域错误和项目的采集跨域设置 |
/sa 返回 40101 | 写入密钥 | 密钥写错、密钥已轮换、项目的采集开关关了或项目已停用 |
/sa 返回 40003 | 引导 | 引导还没走完(没有 Redis 或没有管理员),先完成 首次引导 |
/sa 返回 41301 | 请求体 | 单个请求超过 1MB(解压后也算),把批次拆小 |
/sa 返回 42901 | 采集队列 | 积压顶到上限,见 运维与排障 |
| 返回成功,但「被丢弃」在上涨 | 丢弃原因 | 按上表改对应的设置 |
| 返回成功,没有丢弃,但入库失败在上涨 | 采集状态页的失败事件 | 看失败原因,通常是字段类型不对 |
| 接入检查里有事件,但概览没有 | 日期和时区 | 顶栏选的日期是不是「今天」、是不是项目时区的今天;事件时间是不是在所选区间里 |
| 过一会儿就有了 | 缓存 | 统计结果默认缓存 60 秒(stat.cache_ttl_sec),实时页 5 秒;卡片底部写着计算时间和是否命中缓存 |
调试回显
请求头带 X-Evstats-Debug: 1,并且写入密钥正确时,/sa 的响应会带回规范化之后的事件,可以直接看到服务端把你的字段解析成了什么:
bash
curl -sS https://stats.example.com/sa \
-u 'evs_wk_xxx:' \
-H 'Content-Type: application/json' \
-H 'X-Evstats-Debug: 1' \
-d '{"batch":[{"type":"track","event":"signup","anonymousId":"debug-1","properties":{"plan":"pro"}}]}'WARNING
带调试头的事件同样会真实入库。密钥错误时不会回显任何事件。
Web SDK 打开 debug: true 后,会在浏览器控制台打印入队、上报和配置下发的日志。