指标生命周期
以下指南说明了指标生命周期每个阶段需要遵循的步骤。
添加新指标
请遵循指标检测指南。
修改现有指标
我们希望避免对任何指标的计算逻辑或重要属性进行更改,因为这会使不同版本的 GitLab 中同一指标的比较失效。
如果您更改指标,必须考虑并非所有 GitLab 实例都运行在最新版本。旧实例仍会报告旧版本的指标。 此外,指标的报告数字与之前报告的数字相比才更有意义。 因此,如果您需要更改指标的以下任何部分,则需要添加一个新指标。您可以选择保留旧指标与新指标并存,或删除它。
- 计算逻辑:指任何可能产生与之前实现不同值的更改
- YAML 属性:以下属性直接用于分析或计算:
key_path、time_frame、value_type、data_source。
如果您更改指标的 performance_indicator_type 属性,或认为您的情况需要豁免上述规则,请在合并请求或问题的评论中通过 @ 提及这些团队来通知 Customer Success Ops 团队(@csops-team)、Analytics Engineers(@gitlab-data/analytics-engineers)和 Product Analysts(@gitlab-data/product-analysts)团队。
您可以更改任何其他属性而不会影响计算或分析。请参阅此视频教程获取帮助更新指标属性。
目前,指标字典每天自动构建一次。当您更改指标的 YAML 文件时,可以在 24 小时内看到字典中的更改。
删除指标
-
如果尚不存在删除指标的问题,请创建一个问题。该问题需要概述应删除指标的原因。您可以使用此问题记录删除过程。
-
如果指标至少有一个
[x]mau或customer_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。
-
-
根据
data_source删除指标检测代码:-
database/system:如果指标有instrumentation_class且分配的类不再被任何其他指标使用,您可以删除该类和规范。 如果指标在lib/gitlab/usage_data.rb或ee/lib/ee/gitlab/usage_data.rb中进行检测,则删除相关代码和规范 (示例)。 -
redis_hll/redis/internal_events:删除跟踪代码,例如track_internal_event和相关规范。
-
-
更新指标 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。