仪表盘报告 - 综合页面浏览量

这是“合并页面浏览量”仪表板报告的 SQL 版本。

此 SQL 报告提供 Discourse 网站上登录用户、匿名用户和爬虫每日页面浏览量的计数。

-- [params]
-- date :start_date
-- date :end_date

SELECT
    ar.date::date AS "日期",
    SUM(ar.count) AS "总浏览量",
    SUM(CASE WHEN ar.req_type=6 THEN ar.count ELSE 0 END) AS "爬虫浏览量",
    SUM(CASE WHEN ar.req_type=7 THEN ar.count ELSE 0 END) AS "登录用户浏览量",
    SUM(CASE WHEN ar.req_type=8 THEN ar.count ELSE 0 END) AS "匿名用户浏览量"
FROM application_requests ar
WHERE req_type IN (6,7,8)
    AND ar.date::date BETWEEN :start_date AND :end_date
GROUP BY date
ORDER BY date

SQL 查询说明

该查询在 application_requests 表上运行,该表记录了论坛的各种请求类型。它侧重于由 req_type 值标识的三个特定请求类型:

  • 6:爬虫浏览量
  • 7:登录用户浏览量
  • 8:匿名用户浏览量

以下是查询操作的逐步说明:

  • 参数:查询接受两个参数 :start_date:end_date,允许用户指定报告的日期范围。两个日期参数都接受 YYYY-MM-DD 格式的日期。
  • 选择:查询选择请求的日期 (ar.date) 并将其转换为 date 类型。它还计算指定范围内每天的总浏览量以及按类型(爬虫、登录用户和匿名用户)划分的浏览量明细。
  • 求和:它对每种浏览类型的 count 列进行求和。CASE 语句用于根据 req_type 有条件地将计数包含在总和中。
  • 过滤WHERE 子句过滤记录,仅包括 req_type 值为 6、7 或 8 且日期介于指定的 :start_date:end_date 之间的记录。
  • 分组:查询按日期对结果进行分组,确保每天的每种浏览类型的计数都已聚合。
  • 排序:结果按日期排序,以提供流量的按时间顺序视图。

示例结果

日期 总浏览量 爬虫浏览量 登录用户浏览量 匿名用户浏览量
2023-11-18 5608 3052 565 1928
2023-11-19 9207 6564 470 2273
2023-11-20 6271 2631 1016 2924
5 个赞

@SaraDev 在查看我们的管理员仪表板时,它显示 req_type = 13(page_view_anon_browser)和 15(page_view_logged_in_browser)。这是一个 bug 吗?是否有关于子请求类型的任何解释?例如,我不知道任何已登录类型的组合如何达到 705 这个数字。

1 个赞

application_requests 中的 req_type 字段对应 Discourse 中的以下应用程序请求类型:

  1. http_total
  2. http_2xx
  3. http_background
  4. http_3xx
  5. http_4xx
  6. http_5xx
  7. page_view_crawler
  8. page_view_logged_in
  9. page_view_anon
  10. page_view_logged_in_mobile
  11. page_view_anon_mobile
  12. api
  13. user_api
  14. page_view_anon_browser
  15. page_view_anon_browser_mobile
  16. page_view_logged_in_browser
  17. page_view_logged_in_browser_mobile

您也可以在查看“数据库表和架构”时直接在 Data Explorer 中查看此信息(Data Explorer Tutorial - Part 2 - Discourse SQL Basics

2024 年 9 月,我们改进了页面浏览量的跟踪和计数方式。此处有关于变更内容的解释

您在仪表板上看到的指标很可能使用了新的“网站流量”方法来跟踪页面浏览量,您可以在此处找到此方法的相应 SQL:仪表板报告 - 网站流量

谢谢 Sara,Dashboard Report - Site Traffic 主题中的查询回答了我关于使用 13 和 15 的问题,也解释了为什么 13 + 14 != 8。

1 个赞