fix(server): PV统计加event_name过滤——增量停留事件不再灌倍PV(gzip 4817B记录:0.1.0为3838,增量989)

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-18 15:16:05 +08:00
parent f24060de87
commit 87261abf16
4 changed files with 44 additions and 4 deletions
+4 -2
View File
@@ -7,7 +7,9 @@ def daily_counts(site, date) -> dict:
"""四指标共享口径(site=None 聚合全部站点)。所有指标排除爬虫。
日界取 TIME_ZONE(Asia/Shanghai)自然日:make_aware(datetime.combine(date, time.min))。
口径:pv/uv 均从事件表统计(排除 is_bot),uv=distinct visitor,与 pv 同源;
口径:pv/uv 均从事件表统计(排除 is_bot):pv 只计 event_name=page_view
(SDK 0.2.0 每 15s 一条的 page_stay 增量与 sdk_loaded 不并计,防 PV 随停留时长灌倍),
uv=distinct visitor(任意事件即计);
sessions 按会话 started_at 落入当日且访客非爬虫;new_visitors 按 Visitor.first_seen_at 落入当日。
refresh_daily 落库与 dashboard 今日实时位共用此函数,防两处口径漂移(Task8 审查结论)。
"""
@@ -23,7 +25,7 @@ def daily_counts(site, date) -> dict:
ev = ev.filter(site=site)
vs = vs.filter(site=site)
vis = vis.filter(site=site)
return {"pv": ev.count(),
return {"pv": ev.filter(event_name="page_view").count(),
"uv": ev.values("visitor").distinct().count(),
"sessions": vs.count(),
"new_visitors": vis.count()}