Help us learn about your current experience with the documentation. Take the survey.

本地设置和调试

要在浏览器中跟踪用户交互,需要考虑浏览器设置,例如隐私过滤器(如 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 来本地测试事件:

  1. 确保 Docker 已安装并正常工作

  2. 启用 Snowplow Micro:

    gdk config set snowplow_micro.enabled true
  3. 可选。Snowplow Micro 默认在端口 9091 上运行,您可以通过以下命令更改为 9092

    gdk config set snowplow_micro.port 9092
  4. 通过重新配置 GDK 来重新生成您的 Procfile 和 YAML 配置:

    gdk reconfigure
  5. 重启 GDK:

    gdk restart
  6. 现在您可以在 Snowplow Micro UI 中看到本地实例发送的所有事件,并可以过滤特定事件。Snowplow Micro UI 可以在 /micro/ui 路径下找到,例如 http://localhost:9092/micro/ui

Snowplow Micro UI 和 API 简介

观看关于 Snowplow Micro 的视频

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 是一个用于测试前端事件的浏览器扩展。 它适用于生产环境、暂存环境和本地开发环境。特别适合验证在已部署环境中是否正确发送了事件。

  1. 安装 Snowplow Analytics Debugger Chrome 浏览器扩展。
  2. 打开 Chrome DevTools 并切换到 Snowplow Debugger 标签页。
  3. 在 GitLab 页面上触发的任何事件都应该出现在 Snowplow Debugger 标签页中。

远程事件收集器

在 GitLab.com 上,事件会被发送到 GitLab 配置的收集器。默认情况下,GitLab 自托管实例没有配置收集器,也不会使用 Snowplow 收集数据。

您可以配置您的实例以使用自定义的 Snowplow 收集器。

  1. 在左侧边栏底部,选择 管理员

  2. 选择 设置 > 常规

  3. 展开 Snowplow

  4. 选择 启用 Snowplow 跟踪 并输入您的 Snowplow 配置信息。例如,如果您的自定义 Snowplow 收集器可在 your-snowplow-collector.net 上访问:

    名称
    收集器主机名 your-snowplow-collector.net
    应用 ID gitlab
    Cookie 域 .your-gitlab-instance.com
  5. 选择 保存更改