サービスPingメトリクスのライフサイクル

以下のガイドラインでは、メトリックのライフサイクルの各ステージで従うべき手順を説明します。

新しいメトリックの追加

サービスPingの実装ガイドに従ってください。

既存のメトリックの変更

caution
GitLabの異なるバージョン間で同じメトリックの比較を無効にしてしまうため、メトリックの計算ロジックや重要なアトリビュートを変更しないようにしたいものです。

メトリクスを変更する場合、GitLabのすべてのインスタンスが最新バージョンで動いているわけではないことを考慮しなければなりません。古いインスタンスはまだメトリックの古いバージョンをレポートします。さらに、メトリクスが報告する数値は、主に以前に報告された数値と比較して興味深いものです。そのため、メトリックの以下の部分を変更する必要がある場合は、代わりに新しいメトリックを追加する必要があります。古いメトリックを新しいメトリックと一緒に残すか、削除するかはあなたの選択です。

  • 計算ロジック:これは、以前の実装と異なる値を生成する可能性のある変更を意味します。
  • YAML 属性:次の属性は分析もしくは計算に直接使われます:key_pathtime_frame,value_type,data_source.

メトリックのperformance_indicator_type 属性を変更する場合、または概略のルールから例外が必要と思われる場合は、マージリクエストまたはイシューのコメントで@ これらのグループに言及することにより、カスタマーサクセス・オプス・チーム (@csops-team)、アナリティクス・エンジニア (@gitlab-data/analytics-engineers)、およびプロダクト・アナリスト (@gitlab-data/product-analysts) チームにお知らせください。

その他の属性は、計算や分析に影響を与えることなく変更できます。メトリック属性の更新については、このビデオ チュートリアルを参照してください。

現在、メトリクスディクショナリは1日に1回自動的に構築されます。メトリックのYAMLファイルを変更すると、24時間以内にディクショナリの変更を確認できます。

メトリックの削除

caution
メトリクスが6ヶ月後にSisenseまたは他のシステムで使用されていない場合、Analytics Instrumentationチームはそのメトリクスを非アクティブとしてマークし、レビューのためにグループオーナーに割り当てます。

このプロセスの自動化に取り組んでいます。詳しくはこのエピックをご覧ください。

Analytics Instrumentation は、Sisense ダッシュボードで使用されていないメトリクスを Service Ping から削除します。

メトリクスの削除プロセスの例については、このイシューの例を参照してください。

メトリクスを削除するには

  1. まだメトリックが存在しない場合は、削除するためのイシューを作成してください。イシューには、メトリックを削除する理由の概要を記述する必要があります。このイシューを使用して、削除プロセスを文書化できます。

  2. メトリックが会話インデックスの計算に使用されていないことを確認します。カンバセーショナル・インデックスは、インスタンスのDevOps導入の進捗を管理者に通知するために、セルフマネージド・インスタンスにレポーターバックする指標です。

    CalculateConvIndexService 、使用されているメトリクスを確認できます。メトリクスは、get_value メソッドにフィールド引数として渡されるキーとして表されます。

  3. サービス Ping ペイロードからメトリクスを削除しても、更新されたペイロードが収集および処理されるときに、Version Appでエラーが発生しないことを確認してください。Version App はすべての Service Ping レポートを収集し、永続化します。ローカル開発環境で Service Ping 処理を検証するには、このガイドに従ってください。あるいは、UsageDataController#create エンドポイントのテストに使用するフィクスチャを変更し、削除したいメトリクスがテストペイロードに含まれていない場合でも、テストスイートが失敗しないようにすることもできます。

  4. Redis からデータを削除します。

    通常のRedisカウンタの場合、Redisに保存されているデータを削除します。

    • 関連するRedisキーのRedisからデータを削除するマイグレーションを追加します。詳細については、このMRの例を参照してください。
  5. GitLab Data Teamプロジェクトにイシューを作成します。メトリクスが SiSense のダッシュボードで参照されず、Service Ping から安全に削除できることを確認してください。この例のイシューを参考にしてください。

  6. カスタマーサクセス運用チーム(@csops-team)、アナリティクスエンジニア(@gitlab-data/analytics-engineers)、プロダクトアナリスト(@gitlab-data/product-analysts)に通知します。@ 、ステップ1のイシューのコメントでこれらのグループにメトリックの削除について言及してください。Service Pingのメトリクスの多くは、ヘルススコアとXMAUのレポートにレポーターとして使用されており、これらのメトリクスに予期せぬ変更があった場合、レポートが更新されない可能性があります。

  7. メトリックを安全に削除できることを確認したら、メトリックのYAML定義の属性を更新します:

    • status:removedに設定します。
    • removed_by_url: をメトリクスを削除した MR の URL に設定します。
    • milestone_removed: に、メトリクスが削除されたマイルストーンの番号を設定します。

    メトリックの YAML 定義を完全に削除しないでください。セルフマネージドインスタンスによっては、GitLabの最新バージョンにすぐに更新されず、削除されたメトリクスをレポートし続ける場合があります。Analytics Instrumentation チームは、削除されたメトリクスを特定してフィルタリングするために、すべての削除されたメトリクスの記録が必要です。

    例えば、このマージリクエストを見てください。

  8. メトリクスを安全に削除できることを確認したら、lib/gitlab/usage_data.rb またはee/lib/ee/gitlab/usage_data.rbからメトリクスのインスツルメンテーションを削除してください。

    例えば、このマージリクエストを見てください。

  9. メトリクスに関連する他のレコードを削除してください: