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

指标生命周期

以下指南说明了指标生命周期每个阶段需要遵循的步骤。

添加新指标

请遵循指标检测指南。

修改现有指标

我们希望避免对任何指标的计算逻辑或重要属性进行更改,因为这会使不同版本的 GitLab 中同一指标的比较失效。

如果您更改指标,必须考虑并非所有 GitLab 实例都运行在最新版本。旧实例仍会报告旧版本的指标。 此外,指标的报告数字与之前报告的数字相比才更有意义。 因此,如果您需要更改指标的以下任何部分,则需要添加一个新指标。您可以选择保留旧指标与新指标并存,或删除它

  • 计算逻辑:指任何可能产生与之前实现不同值的更改
  • YAML 属性:以下属性直接用于分析或计算:key_pathtime_framevalue_typedata_source

如果您更改指标的 performance_indicator_type 属性,或认为您的情况需要豁免上述规则,请在合并请求或问题的评论中通过 @ 提及这些团队来通知 Customer Success Ops 团队(@csops-team)、Analytics Engineers(@gitlab-data/analytics-engineers)和 Product Analysts(@gitlab-data/product-analysts)团队。

您可以更改任何其他属性而不会影响计算或分析。请参阅此视频教程获取帮助更新指标属性。

目前,指标字典每天自动构建一次。当您更改指标的 YAML 文件时,可以在 24 小时内看到字典中的更改。

删除指标

  1. 如果尚不存在删除指标的问题,请创建一个问题。该问题需要概述应删除指标的原因。您可以使用此问题记录删除过程。

    • 如果指标至少有一个 [x]maucustomer_health_score 类型的 performance_indicator_type

      在问题的评论中通过 @ 提及这些团队来通知 Customer Success Ops 团队(@csops-team)、Analytics Engineers(@gitlab-data/analytics-engineers)和 Product Analysts(@gitlab-data/product-analysts)团队。对这些指标的意外更改可能会破坏报告。

    • 如果指标由与执行删除操作不同的组拥有

      根据stages 文件标记拥有组的 PM 和 EM。

  2. 根据 data_source 删除指标检测代码:

    • database/system:如果指标有 instrumentation_class 且分配的类不再被任何其他指标使用,您可以删除该类和规范。 如果指标在 lib/gitlab/usage_data.rbee/lib/ee/gitlab/usage_data.rb 中进行检测,则删除相关代码和规范 (示例)。

    • redis_hll/redis/internal_events:删除跟踪代码,例如 track_internal_event 和相关规范。

  3. 更新指标 YAML 定义的属性:

    • status: 设置为 removed

    • removed_by_url: 设置为删除指标的 MR 的 URL

    • milestone_removed: 设置为指标被删除的 milestone 的编号。

    不要完全删除指标的 YAML 定义。一些 GitLab 自托管实例可能不会立即更新到最新版本的 GitLab,因此 继续报告已删除的指标。分析检测团队需要所有已删除指标的记录来识别和过滤它们。

组名变更

当拥有事件或指标的组的名称更改时,应更新属于该组的所有指标和事件定义中的 product_group 属性。

product_group_renamer 脚本可以更新所有定义,因此您无需手动操作。

例如,如果组 5-min-app 被重命名为 2-min-app,您可以像这样更新相关文件:

$ scripts/internal_events/product_group_renamer.rb 5-min-app 2-min-app
Updated '5-min-app' to '2-min-app' in 3 files

Updated files:
  config/metrics/schema/product_groups.json
  config/metrics/counts_28d/20210216184517_p_ci_templates_5_min_production_app_monthly.yml
  config/metrics/counts_7d/20210216184515_p_ci_templates_5_min_production_app_weekly.yml

运行脚本后,您必须将所有修改的文件提交到 Git 并创建合并请求。

该脚本是 GDK 的一部分,前端或后端开发人员可以运行该脚本并准备合并请求。

如果一个组被拆分为多个组,您需要手动更新 product_group。