本地设置和调试
要在浏览器中跟踪用户交互,需要考虑浏览器设置,例如隐私过滤器(如 AdBlock、uBlock)和"请勿跟踪"(DNT)。更多信息请参阅影响跟踪的设置。
内部事件使用名为 Snowplow 的工具在后台处理。为了开发和测试内部事件,有几种工具可以测试前端和后端事件:
| 测试工具 | 前端跟踪 | 后端跟踪 | 本地开发环境 | 生产环境 | 显示单个事件 |
|---|---|---|---|---|---|
| 内部事件监控器 | 是 | 是 | 是 | 是 | 是 |
| Snowplow Micro | 是 | 是 | 是 | 否 | 是 |
| GDK 中的手动检查 | 是 | 是 | 是 | 是 | 否 |
| Snowplow Analytics Debugger Chrome 扩展 | 是 | 否 | 是 | 是 | 是 |
| 远程事件收集器 | 是 | 否 | 是 | 否 | 是 |
对于本地开发,我们建议在积极开发新事件时使用内部事件监控器。
内部事件监控器
要了解在使用 GitLab 应用程序或 rails console 时事件如何触发以及指标如何更新,您可以使用监控器。
启动监控器并列出您想要监控的一个或多个事件。在这个例子中,我们想要监控 i_code_review_user_create_mr。
rails runner scripts/internal_events/monitor.rb i_code_review_user_create_mr监控器可以显示两个表格:
-
相关指标表列出了在i_code_review_user_create_mr事件上定义的所有指标。 倒数第二列显示了监控器启动时每个指标的值,最右侧列显示了每个指标的当前值。 -
Snowplow 事件表列出了仅在监控器启动后触发且与事件名称匹配的 Snowplow 事件中选定的属性。不再需要设置 Snowplow Micro 即可显示此表。
如果触发了新的 i_code_review_user_create_mr 事件,指标值会更新,并且新事件会出现在 Snowplow 事件 表中。
监控器如下所示。
更新时间:2023-10-11 10:17:59 UTC
监控的事件:i_code_review_user_create_mr
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 相关指标 |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| 键路径 | 监控的事件 | 仪器类 | 初始值 | 当前值 |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
| counts_monthly.aggregated_metrics.code_review_category_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 13 | 14 |
| counts_monthly.aggregated_metrics.code_review_group_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 13 | 14 |
| counts_weekly.aggregated_metrics.code_review_category_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 0 | 1 |
| counts_weekly.aggregated_metrics.code_review_group_monthly_active_users | i_code_review_user_create_mr | RedisHLLMetric | 0 | 1 |
| redis_hll_counters.code_review.i_code_review_user_create_mr_monthly | i_code_review_user_create_mr | RedisHLLMetric | 8 | 9 |
| redis_hll_counters.code_review.i_code_review_user_create_mr_weekly | i_code_review_user_create_mr | RedisHLLMetric | 0 | 1 |
+-----------------------------------------------------------------------------+------------------------------+-----------------------+---------------+---------------+
+---------------------------------------------------------------------------------------------------------+
| Snowplow 事件 |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| 事件名称 | 收集器时间戳 | user_id | namespace_id | project_id | plan |
+------------------------------+--------------------------+---------+--------------+------------+---------+
| i_code_review_user_create_mr | 2023-10-11T10:17:15.504Z | 29 | 93 | | default |
+------------------------------+--------------------------+---------+--------------+------------+---------+监控器的键盘命令:
p键用作暂停和启动监控器的切换键。这样可以更轻松地选择和复制表格。r键将监控器重置为其内部状态,并从显示中移除任何先前触发的事件。q键退出监控器。
Snowplow Micro
默认情况下,GitLab 自托管实例不会通过 Snowplow 收集事件数据。我们可以使用基于 Docker 的 Snowplow 收集器 Snowplow Micro 来本地测试事件:
-
确保 Docker 已安装并正常工作。
-
启用 Snowplow Micro:
gdk config set snowplow_micro.enabled true -
可选。Snowplow Micro 默认在端口
9091上运行,您可以通过以下命令更改为9092:gdk config set snowplow_micro.port 9092 -
通过重新配置 GDK 来重新生成您的 Procfile 和 YAML 配置:
gdk reconfigure -
重启 GDK:
gdk restart -
现在您可以在 Snowplow Micro UI 中看到本地实例发送的所有事件,并可以过滤特定事件。Snowplow Micro UI 可以在
/micro/ui路径下找到,例如http://localhost:9092/micro/ui。
Snowplow Micro UI 和 API 简介
GDK 中的手动检查
作为快速测试事件是否触发和指标是否更新的方法,您可以在 rails console 中检查最新值。 确保加载以下辅助程序,以便输出中包含最新的事件和记录。
要查看整个 service ping 负载:
require_relative 'spec/support/helpers/service_ping_helpers.rb'
ServicePingHelpers.get_current_service_ping_payload要查看特定指标的当前值:
require_relative 'spec/support/helpers/service_ping_helpers.rb'
ServicePingHelpers.get_current_usage_metric_value(key_path)Snowplow Analytics Debugger Chrome 扩展
Snowplow Analytics Debugger 是一个用于测试前端事件的浏览器扩展。 它适用于生产环境、暂存环境和本地开发环境。特别适合验证在已部署环境中是否正确发送了事件。
- 安装 Snowplow Analytics Debugger Chrome 浏览器扩展。
- 打开 Chrome DevTools 并切换到 Snowplow Debugger 标签页。
- 在 GitLab 页面上触发的任何事件都应该出现在 Snowplow Debugger 标签页中。
远程事件收集器
在 GitLab.com 上,事件会被发送到 GitLab 配置的收集器。默认情况下,GitLab 自托管实例没有配置收集器,也不会使用 Snowplow 收集数据。
您可以配置您的实例以使用自定义的 Snowplow 收集器。
-
在左侧边栏底部,选择 管理员。
-
选择 设置 > 常规。
-
展开 Snowplow。
-
选择 启用 Snowplow 跟踪 并输入您的 Snowplow 配置信息。例如,如果您的自定义 Snowplow 收集器可在
your-snowplow-collector.net上访问:名称 值 收集器主机名 your-snowplow-collector.net应用 ID gitlabCookie 域 .your-gitlab-instance.com -
选择 保存更改。