- Usage Pingとは何ですか?
- 使用法 Ping ペイロード
- 使用状況Pingの無効化
- 使用法 Pingリクエストフロー
- 使用状況Pingの仕組み
- 使用状況Pingの実装
- Usage Pingの開発とテスト
- 使用統計の定義
- 使用例 Ping ペイロード
使用Pingガイド
- GitLab Enterprise Edition 8.10で導入されました。
- GitLab Enterprise Edition 8.12では、より多くの統計情報が追加されました。
- 9.1でGitLab Coreに移動しました。
- GitLab Ultimate 11.2ではより多くの統計情報が追加されました。
このガイドでは、Usage Pingの目的と実装方法について説明します。
テレメトリーについては、こちらを参照:
その他の便利なリンク
Usage Pingとは何ですか?
- GitLabは毎週、GitLab Inc.に利用状況データを含むペイロードを送信します。 利用状況Pingは、製品、サポート、営業チームに役立つハイレベルなデータを提供します。 プロジェクト名、ユーザー名、その他の特定のデータは送信しません。 利用状況Pingの情報は匿名ではなく、インスタンスのホスト名にリンクされています。 利用状況Pingの送信は任意で、どのインスタンスでもアナリティクスを無効にすることができます。
- 使用状況データは、主にインスタンスのデータベース内のさまざまなテーブルの行数で構成されています。 これらのカウントを月ごと(あるいは週ごと)に比較することで、インスタンスが製品内のさまざまな機能をどのように使用しているかを大まかに把握することができます。 カウントに加えて、GitLab インストールを分類して理解するのに役立つその他の事実も収集されます。
- GitLab にとって利用状況の ping は重要です。この ping を使ってステージ月間アクティブユーザー数(SMAU) を計算し、ステージや機能の成功を測定しています。
- usage pingを有効にすると、GitLabは他のインスタンスからデータを収集し、インスタンスの使用統計をユーザーに表示できるようになります。
なぜUsage Pingを有効にする必要があるのでしょうか?
- Usage Pingの主な目的は、より良いGitLabを構築することです。 GitLabの使われ方に関するデータを収集することで、機能/ステージの採用と利用状況をより良く理解することができます。これにより、GitLabがどのように価値を高めているかを理解し、私たちのチームが人々がGitLabを使う理由をより良く理解することができ、この知識によって私たちはより良い製品決定を行うことができます。
- 使用状況pingをアクティブにする利点として、GitLabではGitLabインストールのユーザーのアクティビティを時系列で分析することができます。
- 使用状況のpingをアクティブにするメリットとして、GitLabはDevOpsスコアを提供し、プランニングからモニタリングまで、インスタンス全体のConcurrent DevOpsの採用状況を概観できます。
- より良い、より積極的なサポートを得ることができます。
- GitLabへの投資から最大限の価値を引き出すためのインサイトとアドバイスを得ることができます。 あなたの組織で多くの機能や価値が採用されていないことを知りたくないですか?
- DevOpsプロセスを改善するための具体的なアドバイスや推奨事項とともに、他の類似組織(匿名化)との比較を示すレポートを入手できます。
- Usage Pingはデフォルトで有効になっています。 無効にするには、Disable Usage Pingを参照してください。
制限事項
- Usage Pingは、ページビュー、リンククリック、ユーザーセッションのようなフロントエンドのイベントを追跡せず、バックエンドの集約されたイベントのみに焦点を当てます。
- このような制限があるため、GitLab.comでより詳細なアナリティクスを行うにはSnowplowでインストゥルメントを作成することをお勧めします。また、セルフマネージドではUsage Pingを使ってバックエンドの集約イベントをトラッキングすることをお勧めします。
使用法 Ping ペイロード
GitLab Inc.に送信された正確なJSONペイロードは、管理パネルで確認できます。 ペイロードを確認するには、以下の手順に従います:
- 管理エリア > 設定 > メトリクスとプロファイリングに移動します。
- 使用統計セクションを展開します。
- ペイロードのプレビューボタンをクリックします。
ペイロードの例については、使用例 Ping ペイロードを参照してください。
使用状況Pingの無効化
GitLab UIでUsage Pingを無効にするには、管理パネルのSettingsページでUsage Pingチェックボックスのチェックを外してください。
Usage Ping を無効にし、今後管理パネルから設定できないようにするには、Omnibus のインストー ルでgitlab.rb
を次のように設定します:
gitlab_rails['usage_ping_enabled'] = false
ソース・インストールでは、gitlab.yml
で以下を設定できます:
production: &base
# ...
gitlab:
# ...
usage_ping_enabled: false
使用法 Pingリクエストフロー
次の例は、GitLabインスタンス、Versionsアプリケーション、ライセンスアプリケーション、Salesforce、GitLabのS3バケット、GitLabのSnowflakeデータウェアハウス、Sisense間の基本的なリクエスト/レスポンスのフローを示しています:
使用状況Pingの仕組み
- Usage PingcronジョブはSidekiqで毎週実行されるように設定されています。
- cronジョブが実行されると、
GitLab::UsageData.to_json
。 -
GitLab::UsageData.to_json
は他の400以上のカウンターメソッド呼び出しにカスケードダウンします。 - すべてのメソッド呼び出しのレスポンスは、
GitLab::UsageData.to_json
の単一のJSONペイロードにマージされます。 - その後、JSONペイロードがVersionsアプリケーションにポストされます。
使用状況Pingの実装
Usage Pingは、カウンターとオブザベーションの2種類のデータで構成されています。 カウンターは、CIパイプラインが何回実行されたかなど、あるイベントがどれくらいの頻度で発生したかを追跡します。 単調で、常に上昇傾向にあります。 オブザベーションは、1つまたは複数のGitLabインスタンスから収集されたファクトで、任意のデータを持つことができます。 データの個別性のため、収集方法に関する一般的なガイドラインはありません。
usage_data.rb
、4種類のカウンターがあります:
- 通常のバッチカウンタ:与えられたActiveRecord_Relationの単純なカウント
- Distinctバッチカウンタ:指定されたカラムの指定されたActiveRecord_RelationのDistinctカウント
- 代替カウンタ:設定や構成に使用します。
- RedisCounters:メモリ内のカウントに使用されます。 このメソッドはデータの不正確さのため非推奨となり、永続的なメソッドに置き換えられる予定です。
なぜバッチカウントなのか
大きなテーブルの場合、PostgreSQLはMVCC(Multi-version Concurrency Control)のために行のカウントに時間がかかることがあります。 バッチカウントは、1つの大きなクエリを複数の小さなクエリに分割してカウントする方法です。 例えば、1つのクエリで1,000,000レコードのクエリを実行する代わりに、バッチカウントを使用すると、10,000レコードずつのクエリを100回実行することができます。 バッチカウントは、1つのバッチクエリが1つの長い実行クエリよりも大幅に短いため、データベースのタイムアウトを回避するのに便利です。
GitLab.comでは、15秒のクエリタイムアウトがある非常に大きなテーブルがあるので、タイムアウトに遭遇しないようにバッチカウントを使っています。 以下はGitLab.comのいくつかのテーブルのサイズです:
テーブル | 行数(単位:百万 |
---|---|
merge_request_diff_commits
| 2280 |
ci_build_trace_sections
| 1764 |
merge_request_diff_files
| 1082 |
events
| 514 |
バッチカウンティングには、Ordinary Batch Counters
とDistinct Batch Counters
の2つの方法があります。 バッチカウンティングでは、最大、最小、範囲のクエリを計算するために、カラムにインデックスが必要です。 場合によっては、カウンタに関係するカラムに特殊なインデックスを追加する必要があります。
通常のバッチカウンター
ActiveRecord::StatementInvalid
エラーを処理します。
指定された ActiveRecord_Relation の単純なカウント。
方法:count(relation, column = nil, batch: true, start: nil, finish: nil)
議論:
-
relation
カウントを実行する ActiveRecord_Relation -
column
デフォルトはプライマリキーです。 -
batch
: バッチカウントを使用するためのデフォルトtrue
-
start
複雑な分単位の計算を避けるために、バッチカウントをカスタムで開始します。 -
end
複雑な分単位の計算を避けるために、バッチ終了時のカウントをカスタマイズできます。
例:
count(User.active)
count(::Clusters::Cluster.aws_installed.enabled, :cluster_id)
count(::Clusters::Cluster.aws_installed.enabled, :cluster_id, start: ::Clusters::Cluster.minimum(:id), finish: ::Clusters::Cluster.maximum(:id))
識別バッチカウンター
ActiveRecord::StatementInvalid
エラーを処理します。
指定されたカラムの、指定された ActiveRecord_Relation の識別カウント。
方法:distinct_count(relation, column = nil, batch: true, start: nil, finish: nil)
議論:
-
relation
カウントを実行する ActiveRecord_Relation -
column
デフォルトはプライマリキーです。 -
batch
: バッチカウントを使用するためのデフォルトtrue
-
start
複雑な分単位の計算を避けるために、バッチカウントをカスタムで開始します。 -
end
複雑な分単位の計算を避けるために、バッチ終了時のカウントをカスタマイズできます。
例:
distinct_count(::Project, :creator_id)
distinct_count(::Note.with_suggestions.where(time_period), :author_id, start: ::User.minimum(:id), finish: ::User.maximum(:id))
distinct_count(::Clusters::Applications::CertManager.where(time_period).available.joins(:cluster), 'clusters.user_id')
Redisカウンタ
::Redis::CommandError
とGitlab::UsageDataCounters::BaseCounter::UnknownEvent
を処理 ブロックが送信されたときに -1 を返すか、counter(Gitlab::UsageDataCounters)
が送信されたときにすべての値を持つハッシュ -1 を返す Redis カウンタの実装が 2 つ異なるため、動作が異なります。
方法:redis_usage_data(counter, &block)
議論:
-
counter
fallback_totals
メソッドを実装した からのカウンタ。Gitlab::UsageDataCounters
- または
block
: で評価されます。
使用例:
redis_usage_data(Gitlab::UsageDataCounters::WikiPageCounter)
redis_usage_data { ::Gitlab::UsageCounters::PodLogs.usage_totals[:total] }
Redisカウンタは非推奨になりつつあるので、代わりにSnowplowイベントを使うようにしてください。 私たちはセルフマネージドイベントトラッキングを構築中で、これが利用可能になれば、すべてのRedisカウンタをSnowplowイベントに変換します。
代替カウンター
StandardError
と -1 へのフォールバックを処理します。これにより、1 つの例外が発生しても、すべてのメジャーが失敗することはありません。 主に設定と構成に使用されます。
方法:alt_usage_data(value = nil, fallback: -1, &block)
議論:
-
value
この場合、値は単に返されます。 - または
block
: で評価されます。 -
fallback: -1
失敗しているメトリクスに使用される共通値。
使用例:
alt_usage_data { Gitlab::VERSION }
alt_usage_data { Gitlab::CurrentSettings.uuid }
alt_usage_data(999)
クエリ
運用メトリクスを Usage Ping の一部とする場合、データベースや Redis を使ったクエリでは有用なデータは得られないでしょう。 その代わりに、Prometheus を使うのが適切かもしれません。GitLab のアーキテクチャコンポーネントのほとんどが Prometheus にメトリクスを公開しており、それをクエリバックして集計し、使用状況データとして含めることができるからです。
yield
Prometheus にメトリクスをクエリするために、ヘルパー・メソッドが用意されています。このメソッドは、PrometheusClient
が完全に設定されていることを前提としています:
with_prometheus_client do |client|
response = client.query('<your query>')
...
end
APIを使用してデータをクエリする方法については、PrometheusClient
定義を参照してください。
Usage Pingの開発とテスト
1. Railsコンソールを使って手動でカウンタをテストします。
# count
Gitlab::UsageData.count(User.active)
Gitlab::UsageData.count(::Clusters::Cluster.aws_installed.enabled, :cluster_id)
# count distinct
Gitlab::UsageData.distinct_count(::Project, :creator_id)
Gitlab::UsageData.distinct_count(::Note.with_suggestions.where(time_period), :author_id, start: ::User.minimum(:id), finish: ::User.maximum(:id))
2. SQLクエリの生成
Railsコンソールが生成されたSQLクエリを返します。
使用例:
pry(main)> Gitlab::UsageData.count(User.active)
(2.6ms) SELECT "features"."key" FROM "features"
(15.3ms) SELECT MIN("users"."id") FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."user_type" IS NULL OR "users"."user_type" IN (6, 4))
(2.4ms) SELECT MAX("users"."id") FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."user_type" IS NULL OR "users"."user_type" IN (6, 4))
(1.9ms) SELECT COUNT("users"."id") FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."user_type" IS NULL OR "users"."user_type" IN (6, 4)) AND "users"."id" BETWEEN 1 AND 100000
3. クエリの最適化 #データベースラボ
SQLクエリを#database-lab
に貼り付けて、クエリがスケール時にどのように実行されるかを確認します。
-
#database-lab
はSlackのチャンネルで、本番サイズの環境を使ってクエリをテストします。 - GitLab.comの本番データベースには15秒のタイムアウトがあります。
- コールドキャッシュを使用する場合、単一のクエリの実行時間は1秒以下でなければなりません。
- 実行時間を短縮するために、関係するカラムに特化したインデックスを追加します。
クエリの実行を理解するために、MRの説明に以下の情報を追加します:
-
time_period
テストがあるカウンターについては、両方のケースの情報を追加します:-
time_period = {}
全期間 -
time_period = { created_at: 28.days.ago..Time.current }
直近28日間
-
- 最適化前後の実行プランとクエリ時間
- インデックスと時刻に対して生成されたクエリ
- 上下実行のマイグレーション出力
また、#database-lab
、explain.depesz.comも使用しています。詳しくはデータベースレビューガイドをご覧ください。
クエリ最適化作業の例:
4. メトリクス定義の追加
メトリクスを追加、変更、更新する場合は、使用統計定義テーブルを更新してください。
5. バージョン・アプリケーションに新しいメトリクスを追加
新しいメトリクスを Versions Application に追加する必要があるかどうかを確認します。usage_data
スキーマと使用データ・パラメータの受け入れを参照してください。counts
キーの counts
下に追加されたメトリクスは、すべて列にcounts
保存 counts
されます。
詳細については、Usage Pingにインスツルメンテーションを追加するプロセスを参照してください。
6. 機能ラベルの追加
新しい Usage Ping メトリクスのマージ・リクエストにfeature
ラベルを追加します。 これらはユーザー向けの変更で、Usage Ping 機能の拡張の一部です。
7. 変更履歴ファイルの追加
変更履歴の入力ガイドに従ってください。
8. テレメトリーレビューの依頼
GitLab.com では、Telemetry 関連のファイルを監視するために DangerBot をセットアップしており、DangerBot が Telemetry のレビューを推奨します。 レビューを希望する場合は、MR に@gitlab-org/growth/telemetry/engineers
と明記してください。
オプション:Prometheusの使用状況Pingのテスト
提出されたデータにPrometheusからクエリされたメトリクスが含まれており、それを検査・検証したい場合は、Prometheusサーバーがローカルで稼働していること、さらにそれぞれのGitLabコンポーネントがそのサーバーにメトリクスをエクスポートしていることを確認する必要があります。 Prometheusから送られてくるデータをテストする必要がない場合は、Prometheusサーバーが稼働していなくてもUsage Pingは優雅に低下するはずなので、それ以上のアクションは必要ありません。
現在、Prometheusにデータをエクスポートできるコンポーネントは3種類あり、Usage Pingに含まれています:
-
node_exporter
- ホスト・マシンからのノード・メトリクスのエクスポート -
gitlab-exporter
- 様々なGitLabコンポーネントからプロセスメトリクスをエクスポート - SidekiqやRailsサーバーなど、独自のメトリクスをエクスポートする様々なGitLabサービス
Omnibusコンテナでのテスト
これはPrometheusベースのUsage Pingをテストするために推奨される方法です。
変更を確認する最も簡単な方法は、CI経由でコードブランチから新しいOmnibusイメージをビルドし、イメージをダウンロードしてローカルのコンテナインスタンスを実行することです:
- マージリクエストから、
qa
ステージをクリックし、package-and-qa
ジョブをトリガーします。 このジョブは、omnibus-gitlab-mirror
プロジェクト](https://gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/-/pipelines)の[下流パイプラインで Omnibus ビルドをトリガーします。 - 下流のパイプラインでは、
gitlab-docker
のジョブが終了するまで待ちます。 - ジョブ・ログを開き、バージョンを含む完全なコンテナ名を検索します。 これは、次のような形式になります:
registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:<VERSION>
. - ローカルマシンで、GitLab Dockerレジストリにログインしていることを確認します。 この手順は、Authenticating to the GitLab Container Registryにあります。
- ログインしたら、次の方法で新しい画像をダウンロードします。
docker pull registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:<VERSION>
- OmnibusのGitLabコンテナをDockerで操作して実行する方法については、OmnibusドキュメントのGitLab Dockerイメージを参照してください。
GitLab開発ツールキットでのテスト
実際のGitLabのデプロイをエミュレートするときに多くの困難が伴うので、これはあまり推奨されないアプローチです。
GDKは現在、Prometheusサーバーやnode_exporter
、他のGitLabコンポーネントと一緒に実行するように設定されていません。もしそうしたいのであれば、PrometheusでGDKをモニタリングするのが良いスタートです。
GCKには、Prometheus ベースの Usage Ping をテストするための限定的なサポートがあります。 デフォルトでは、多くのコンポーネントをスクレイピングするように設定された Prometheus サービスが既に付属していますが、以下の制限があります:
- 現在、
gitlab-exporter
インスタンスを実行していないため、Gitaly などのサービスからのいくつかのprocess_*
メトリクスが欠落している可能性があります。 -
node_exporter
を実行していますが、docker-compose
サービスはホストをエミュレートしています。つまり、通常であれば、実行中の他のどのサービスとも関連付けられないように自分自身を報告します。本番環境では、ノード・メトリクスがどのように報告されるかは異なります。ノード・メトリクスは、node_exporter
常に任意のノード上で他の GitLab コンポーネントと一緒にプロセスとして実行されます。Usage Ping の観点からは、どのノード・データも、実行中のどのサービスとも関連付けられないように見えます。この問題を軽減するために、node_exporter
web
サービスに GCK を任意に「割り当て」ました。つまり、Usage Ping では、このサービスnode_*
のメトリクスのみが表示されます。
使用統計の定義
統計 | セクション | ステージ | 階層 | エディション | 説明 |
---|---|---|---|---|---|
uuid
| |||||
hostname
| |||||
version
| |||||
installation_type
| |||||
active_user_count
| |||||
recorded_at
| |||||
recording_ce_finished_at
| CE+EE | Coreの特徴を計算すると | |||
recording_ee_finished_at
| EE | EE固有の特徴を計算すると | |||
edition
| |||||
license_md5
| |||||
license_id
| |||||
historical_max_users
| |||||
Name
| licensee
| ||||
Email
| licensee
| ||||
Company
| licensee
| ||||
license_user_count
| |||||
license_starts_at
| |||||
license_expires_at
| |||||
license_plan
| |||||
license_trial
| |||||
assignee_lists
| counts
| ||||
boards
| counts
| ||||
ci_builds
| counts
| verify
| プロジェクト内のユニークなビルド | ||
ci_internal_pipelines
| counts
| verify
| GitLabリポジトリ内のパイプライン総数 | ||
ci_external_pipelines
| counts
| verify
| 外部リポジトリにあるパイプライン合計 | ||
ci_pipeline_config_auto_devops
| counts
| verify
| Auto DevOpsテンプレートからのパイプライン合計 | ||
ci_pipeline_config_repository
| counts
| verify
| リポジトリ内のテンプレートからのパイプライン合計 | ||
ci_runners
| counts
| verify
| プロジェクトに参加したランナーの総数 | ||
ci_triggers
| counts
| verify
| プロジェクトに設定されているトリガー総数 | ||
ci_pipeline_schedules
| counts
| verify
| GitLabのパイプラインスケジュール | ||
auto_devops_enabled
| counts
| configure
| 自動DevOpsテンプレートが有効なプロジェクト | ||
auto_devops_disabled
| counts
| configure
| Auto DevOpsテンプレートが無効なプロジェクト | ||
deploy_keys
| counts
| ||||
deployments
| counts
| release
| デプロイ総数 | ||
deployments
| counts_monthly
| release
| 直近28日間のデプロイ総数 | ||
dast_jobs
| counts
| ||||
successful_deployments
| counts
| release
| 成功したデプロイ総数 | ||
successful_deployments
| counts_monthly
| release
| 直近28日間のデプロイ成功数合計 | ||
failed_deployments
| counts
| release
| 失敗したデプロイの合計 | ||
failed_deployments
| counts_monthly
| release
| 過去28日間のデプロイ失敗の総数 | ||
environments
| counts
| release
| 利用可能な環境と停止している環境の合計 | ||
clusters
| counts
| configure
| GitLabマネージドクラスターの有効・無効の合計 | ||
clusters_enabled
| counts
| configure
| 現在有効なGitLab Managedクラスタの総数 | ||
project_clusters_enabled
| counts
| configure
| プロジェクトにアタッチされているGitLab Managedクラスター合計 | ||
group_clusters_enabled
| counts
| configure
| グループにアタッチされているGitLab Managedクラスターの総数 | ||
instance_clusters_enabled
| counts
| configure
| インスタンスにアタッチされているGitLab Managedクラスタの合計数 | ||
clusters_disabled
| counts
| configure
| GitLabマネージド無効クラスタ合計 | ||
project_clusters_disabled
| counts
| configure
| 過去にプロジェクトにアタッチされたGitLabマネージド無効クラスター合計 | ||
group_clusters_disabled
| counts
| configure
| 以前にグループにアタッチされたGitLab Managedの無効クラスター合計 | ||
instance_clusters_disabled
| counts
| configure
| インスタンスに以前アタッチされていたGitLab Managed無効クラスタの合計 | ||
clusters_platforms_eks
| counts
| configure
| GitLab on AWS EKSでプロビジョニングされたGitLab Managedクラスターの総数 | ||
clusters_platforms_gke
| counts
| configure
| GCE GKE上のGitLabでプロビジョニングされたGitLab Managedクラスタの総数 | ||
clusters_platforms_user
| counts
| configure
| ユーザプロビジョニングされたGitLab Managedクラスター合計 | ||
clusters_applications_helm
| counts
| configure
| Helmが有効なGitLab Managedクラスター合計 | ||
clusters_applications_ingress
| counts
| configure
| Ingressが有効なGitLab Managedクラスター合計 | ||
clusters_applications_cert_managers
| counts
| configure
| Cert Managerが有効なGitLab Managedクラスター合計 | ||
clusters_applications_crossplane
| counts
| configure
| クロスプレーンが有効なGitLab Managedクラスター合計 | ||
clusters_applications_prometheus
| counts
| configure
| Prometheus が有効な GitLab Managed クラスター合計 | ||
clusters_applications_runner
| counts
| configure
| Runnerが有効なGitLab Managedクラスタ合計 | ||
clusters_applications_knative
| counts
| configure
| Knativeが有効なGitLab Managedクラスター合計 | ||
clusters_applications_elastic_stack
| counts
| configure
| Elastic Stackを有効にしたGitLab Managedクラスタ合計 | ||
clusters_management_project
| counts
| configure
| クラスター管理プロジェクトが定義されたGitLab Managedクラスター合計 | ||
in_review_folder
| counts
| ||||
grafana_integrated_projects
| counts
| ||||
groups
| counts
| ||||
issues
| counts
| ||||
issues_created_from_gitlab_error_tracking_ui
| counts
| monitor
| |||
issues_with_associated_zoom_link
| counts
| monitor
| |||
issues_using_zoom_quick_actions
| counts
| monitor
| |||
issues_with_embedded_grafana_charts_approx
| counts
| monitor
| |||
issues_with_health_status
| counts
| ||||
keys
| counts
| ||||
label_lists
| counts
| ||||
lfs_objects
| counts
| ||||
milestone_lists
| counts
| ||||
milestones
| counts
| ||||
pages_domains
| counts
| release
| GitLab総ドメイン数 | ||
pool_repositories
| counts
| ||||
projects
| counts
| ||||
projects_imported_from_github
| counts
| ||||
projects_with_repositories_enabled
| counts
| ||||
projects_with_error_tracking_enabled
| counts
| monitor
| |||
protected_branches
| counts
| ||||
releases
| counts
| release
| ユニークなリリースタグ | ||
remote_mirrors
| counts
| ||||
requirements_created
| counts
| ||||
snippets
| counts
| ‘作成’ | CE+EE | ||
snippets
| counts_monthly
| ‘作成’ | CE+EE | ||
personal_snippets
| counts
| ‘作成’ | CE+EE | ||
personal_snippets
| counts_monthly
| ‘作成’ | CE+EE | ||
project_snippets
| counts
| ‘作成’ | CE+EE | ||
project_snippets
| counts_monthly
| ‘作成’ | CE+EE | ||
suggestions
| counts
| ||||
todos
| counts
| ||||
uploads
| counts
| ||||
web_hooks
| counts
| ||||
projects_alerts_active
| counts
| ||||
projects_asana_active
| counts
| ||||
projects_assembla_active
| counts
| ||||
projects_bamboo_active
| counts
| ||||
projects_bugzilla_active
| counts
| ||||
projects_buildkite_active
| counts
| ||||
projects_campfire_active
| counts
| ||||
projects_custom_issue_tracker_active
| counts
| ||||
projects_discord_active
| counts
| ||||
projects_drone_ci_active
| counts
| ||||
projects_emails_on_push_active
| counts
| ||||
projects_external_wiki_active
| counts
| ||||
projects_flowdock_active
| counts
| ||||
projects_github_active
| counts
| ||||
projects_hangouts_chat_active
| counts
| ||||
projects_hipchat_active
| counts
| ||||
projects_irker_active
| counts
| ||||
projects_jenkins_active
| counts
| ||||
projects_jira_active
| counts
| ||||
projects_mattermost_active
| counts
| ||||
projects_mattermost_slash_commands_active
| counts
| ||||
projects_microsoft_teams_active
| counts
| ||||
projects_packagist_active
| counts
| ||||
projects_pipelines_email_active
| counts
| ||||
projects_pivotaltracker_active
| counts
| ||||
projects_prometheus_active
| counts
| ||||
projects_pushover_active
| counts
| ||||
projects_redmine_active
| counts
| ||||
projects_slack_active
| counts
| ||||
projects_slack_slash_commands_active
| counts
| ||||
projects_teamcity_active
| counts
| ||||
projects_unify_circuit_active
| counts
| ||||
projects_webex_teams_active
| counts
| ||||
projects_youtrack_active
| counts
| ||||
projects_jira_server_active
| counts
| ||||
projects_jira_cloud_active
| counts
| ||||
projects_jira_dvcs_cloud_active
| counts
| ||||
projects_jira_dvcs_server_active
| counts
| ||||
labels
| counts
| ||||
merge_requests
| counts
| ||||
merge_requests_users
| counts
| ||||
notes
| counts
| ||||
wiki_pages_create
| counts
| ||||
wiki_pages_update
| counts
| ||||
wiki_pages_delete
| counts
| ||||
web_ide_commits
| counts
| ||||
web_ide_views
| counts
| ||||
web_ide_merge_requests
| counts
| ||||
web_ide_previews
| counts
| ||||
snippet_comment
| counts
| ||||
commit_comment
| counts
| ||||
merge_request_comment
| counts
| ||||
snippet_create
| counts
| ||||
snippet_update
| counts
| ||||
navbar_searches
| counts
| ||||
cycle_analytics_views
| counts
| ||||
productivity_analytics_views
| counts
| ||||
source_code_pushes
| counts
| ||||
merge_request_create
| counts
| ||||
design_management_designs_create
| counts
| ||||
design_management_designs_update
| counts
| ||||
design_management_designs_delete
| counts
| ||||
licenses_list_views
| counts
| ||||
user_preferences_group_overview_details
| counts
| ||||
user_preferences_group_overview_security_dashboard
| counts
| ||||
ingress_modsecurity_logging
| counts
| ||||
ingress_modsecurity_blocking
| counts
| ||||
ingress_modsecurity_disabled
| counts
| ||||
ingress_modsecurity_not_installed
| counts
| ||||
dependency_list_usages_total
| counts
| ||||
epics
| counts
| ||||
feature_flags
| counts
| ||||
geo_nodes
| counts
| geo
| Geoデプロイのサイト数 | ||
geo_event_log_max_id
| counts
| geo
| Geoプライマリのレプリケーションイベント数 | ||
incident_issues
| counts
| monitor
| アラートボットが作成したイシュー | ||
alert_bot_incident_issues
| counts
| monitor
| アラートボットが作成したイシュー | ||
incident_labeled_issues
| counts
| monitor
| インシデント・ラベルのイシュー | ||
issues_created_gitlab_alerts
| counts
| monitor
| アラートボット以外のユーザーによるアラートから作成されたイシュー | ||
issues_created_manually_from_alerts
| counts
| monitor
| アラートボット以外のユーザーによるアラートから作成されたイシュー | ||
issues_created_from_alerts
| counts
| monitor
| Prometheusとアラート管理アラートから作成されたイシュー | ||
ldap_group_links
| counts
| ||||
ldap_keys
| counts
| ||||
ldap_users
| counts
| ||||
pod_logs_usages_total
| counts
| ||||
projects_enforcing_code_owner_approval
| counts
| ||||
projects_mirrored_with_pipelines_enabled
| counts
| release
| リポジトリのミラーリングが有効なプロジェクト | ||
projects_reporting_ci_cd_back_to_github
| counts
| verify
| GitHubサービスパイプラインが有効なプロジェクト | ||
projects_with_packages
| counts
| package
| パッケージレジストリを設定したプロジェクト | ||
projects_with_prometheus_alerts
| counts
| monitor
| Prometheusアラートが有効なプロジェクト | ||
projects_with_tracing_enabled
| counts
| monitor
| トレースが有効なプロジェクト | ||
projects_with_alerts_service_enabled
| counts
| monitor
| アラートサービスが有効なプロジェクト | ||
template_repositories
| counts
| ||||
container_scanning_jobs
| counts
| ||||
dependency_scanning_jobs
| counts
| ||||
license_management_jobs
| counts
| ||||
sast_jobs
| counts
| ||||
status_page_projects
| counts
| monitor
| ステータスページが有効なプロジェクト | ||
status_page_issues
| counts
| monitor
| ステータスページに公開されたイシュー | ||
status_page_incident_publishes
| counts
| monitor
| パブリッシュオペレーションの累積使用回数 | ||
status_page_incident_unpublishes
| counts
| monitor
| アンパブリッシュオペレーションの累積使用回数 | ||
epics_deepest_relationship_level
| counts
| ||||
operations_dashboard_default_dashboard
| counts
| monitor
| オペレーションダッシュボードが有効なアクティブユーザー | ||
operations_dashboard_users_with_projects_added
| counts
| monitor
| オペレーションダッシュボードにプロジェクトを表示するアクティブユーザー | ||
container_registry_enabled
| |||||
dependency_proxy_enabled
| |||||
gitlab_shared_runners_enabled
| |||||
gravatar_enabled
| |||||
ldap_enabled
| |||||
mattermost_enabled
| |||||
omniauth_enabled
| |||||
prometheus_enabled
| バンドルされているPrometheusが有効かどうか | ||||
prometheus_metrics_enabled
| |||||
reply_by_email_enabled
| |||||
average
| avg_cycle_analytics - code
| ||||
sd
| avg_cycle_analytics - code
| ||||
missing
| avg_cycle_analytics - code
| ||||
average
| avg_cycle_analytics - test
| ||||
sd
| avg_cycle_analytics - test
| ||||
missing
| avg_cycle_analytics - test
| ||||
average
| avg_cycle_analytics - review
| ||||
sd
| avg_cycle_analytics - review
| ||||
missing
| avg_cycle_analytics - review
| ||||
average
| avg_cycle_analytics - staging
| ||||
sd
| avg_cycle_analytics - staging
| ||||
missing
| avg_cycle_analytics - staging
| ||||
average
| avg_cycle_analytics - production
| ||||
sd
| avg_cycle_analytics - production
| ||||
missing
| avg_cycle_analytics - production
| ||||
total
| avg_cycle_analytics
| ||||
g_analytics_contribution
| analytics_unique_visits
| manage
| groups/:group/-/contribution_analyticsへの訪問数 | ||
g_analytics_insights
| analytics_unique_visits
| manage
| グループ/:グループ/-/インサイトへの訪問 | ||
g_analytics_issues
| analytics_unique_visits
| manage
| groups/:group/-/issues_analyticsへの訪問数 | ||
g_analytics_productivity
| analytics_unique_visits
| manage
| グループ/:group/-/analytics/productivity_analyticsへの訪問 | ||
g_analytics_valuestream
| analytics_unique_visits
| manage
| groups/:group/-/analytics/value_stream_analyticsへの訪問。 | ||
p_analytics_pipelines
| analytics_unique_visits
| manage
| グループ/:プロジェクト/パイプライン/チャートへの訪問 | ||
p_analytics_code_reviews
| analytics_unique_visits
| manage
| group/:project/-/analytics/code_reviewsへの訪問。 | ||
p_analytics_valuestream
| analytics_unique_visits
| manage
| group/:project/-/value_stream_analyticsへの訪問。 | ||
p_analytics_insights
| analytics_unique_visits
| manage
| グループ/:プロジェクト/インサイトへの訪問 | ||
p_analytics_issues
| analytics_unique_visits
| manage
| group/:project/-/analytics/issues_analyticsへの訪問。 | ||
p_analytics_repo
| analytics_unique_visits
| manage
| group/:project/-/graphs/master/chartsへの訪問。 | ||
u_analytics_todos
| analytics_unique_visits
| manage
| ダッシュボード/トドへの訪問 | ||
i_analytics_cohorts
| analytics_unique_visits
| manage
| インスタンス統計/コホートへの訪問 | ||
i_analytics_dev_ops_score
| analytics_unique_visits
| manage
| /-/instance_statistics/dev_ops_scoreへの訪問 | ||
analytics_unique_visits_for_any_target
| analytics_unique_visits
| manage
| 上記のページへのアクセス | ||
clusters_applications_cert_managers
| usage_activity_by_stage
| configure
| CE+EE | 証明書マネージャが有効な独自のクラスター | |
clusters_applications_helm
| usage_activity_by_stage
| configure
| CE+EE | Helmが有効な独自のクラスター | |
clusters_applications_ingress
| usage_activity_by_stage
| configure
| CE+EE | Ingressが有効なユニークなクラスター | |
clusters_applications_knative
| usage_activity_by_stage
| configure
| CE+EE | Knativeが有効な独自のクラスター | |
clusters_management_project
| usage_activity_by_stage
| configure
| CE+EE | プロジェクト管理が可能な独自のクラスター | |
clusters_disabled
| usage_activity_by_stage
| configure
| CE+EE | GitLabマネージドクラスター “以外の合計 | |
clusters_enabled
| usage_activity_by_stage
| configure
| CE+EE | GitLabマネージドクラスター合計 | |
clusters_platforms_gke
| usage_activity_by_stage
| configure
| CE+EE | Google Cloudをインストールした独自のクラスター | |
clusters_platforms_eks
| usage_activity_by_stage
| configure
| CE+EE | AWSをインストールした独自クラスター | |
clusters_platforms_user
| usage_activity_by_stage
| configure
| CE+EE | ユーザーが提供する独自のクラスター | |
instance_clusters_disabled
| usage_activity_by_stage
| configure
| CE+EE | インスタンスで無効化されたユニーク・クラスター | |
instance_clusters_enabled
| usage_activity_by_stage
| configure
| CE+EE | インスタンスで有効なユニーク・クラスター | |
group_clusters_disabled
| usage_activity_by_stage
| configure
| CE+EE | グループで無効化されたユニーククラスター | |
group_clusters_enabled
| usage_activity_by_stage
| configure
| CE+EE | グループで有効なユニーククラスター | |
project_clusters_disabled
| usage_activity_by_stage
| configure
| CE+EE | プロジェクトで無効化された独自のクラスター | |
project_clusters_enabled
| usage_activity_by_stage
| configure
| CE+EE | プロジェクトで有効な独自のクラスター | |
projects_slack_notifications_active
| usage_activity_by_stage
| configure
| EE | Slackサービスが有効なユニークなプロジェクト | |
projects_slack_slash_active
| usage_activity_by_stage
| configure
| EE | Slackの「/」コマンドが有効なユニークなプロジェクト | |
projects_with_prometheus_alerts
| usage_activity_by_stage
| configure
| EE | Prometheusが有効でアラートがないプロジェクト | |
deploy_keys
| usage_activity_by_stage
| create
| CE+EE | ||
keys
| usage_activity_by_stage
| create
| CE+EE | ||
merge_requests
| usage_activity_by_stage
| create
| CE+EE | ||
projects_with_disable_overriding_approvers_per_merge_request
| usage_activity_by_stage
| create
| CE+EE | ||
projects_without_disable_overriding_approvers_per_merge_request
| usage_activity_by_stage
| create
| CE+EE | ||
remote_mirrors
| usage_activity_by_stage
| create
| CE+EE | ||
snippets
| usage_activity_by_stage
| create
| CE+EE | ||
merge_requests_users
| usage_activity_by_stage_monthly
| create
| CE+EE | マージリクエストを使用したユーザーのユニークカウント | |
projects_enforcing_code_owner_approval
| usage_activity_by_stage
| create
| EE | ||
merge_requests_with_optional_codeowners
| usage_activity_by_stage
| create
| EE | ||
merge_requests_with_required_codeowners
| usage_activity_by_stage
| create
| EE | ||
projects_imported_from_github
| usage_activity_by_stage
| create
| EE | ||
projects_with_repositories_enabled
| usage_activity_by_stage
| create
| EE | ||
protected_branches
| usage_activity_by_stage
| create
| EE | ||
suggestions
| usage_activity_by_stage
| create
| EE | ||
approval_project_rules
| usage_activity_by_stage
| create
| EE | プロジェクト承認者数 | |
approval_project_rules_with_target_branch
| usage_activity_by_stage
| create
| EE | デフォルトのターゲットブランチでないプロジェクト承認者の数 | |
clusters
| usage_activity_by_stage
| monitor
| CE+EE | ||
clusters_applications_prometheus
| usage_activity_by_stage
| monitor
| CE+EE | ||
operations_dashboard_default_dashboard
| usage_activity_by_stage
| monitor
| CE+EE | ||
operations_dashboard_users_with_projects_added
| usage_activity_by_stage
| monitor
| EE | ||
projects_prometheus_active
| usage_activity_by_stage
| monitor
| EE | ||
projects_with_error_tracking_enabled
| usage_activity_by_stage
| monitor
| EE | ||
projects_with_tracing_enabled
| usage_activity_by_stage
| monitor
| EE | ||
events
| usage_activity_by_stage
| manage
| CE+EE | ||
groups
| usage_activity_by_stage
| manage
| CE+EE | ||
users_created_at
| usage_activity_by_stage
| manage
| CE+EE | ||
omniauth_providers
| usage_activity_by_stage
| manage
| CE+EE | ||
ldap_keys
| usage_activity_by_stage
| manage
| EE | ||
ldap_users
| usage_activity_by_stage
| manage
| EE | ||
value_stream_management_customized_group_stages
| usage_activity_by_stage
| manage
| EE | ||
projects_with_compliance_framework
| usage_activity_by_stage
| manage
| EE | ||
ldap_servers
| usage_activity_by_stage
| manage
| EE | ||
ldap_group_sync_enabled
| usage_activity_by_stage
| manage
| EE | ||
ldap_admin_sync_enabled
| usage_activity_by_stage
| manage
| EE | ||
group_saml_enabled
| usage_activity_by_stage
| manage
| EE | ||
issues
| usage_activity_by_stage
| plan
| CE+EE | ||
notes
| usage_activity_by_stage
| plan
| CE+EE | ||
projects
| usage_activity_by_stage
| plan
| CE+EE | ||
todos
| usage_activity_by_stage
| plan
| CE+EE | ||
assignee_lists
| usage_activity_by_stage
| plan
| EE | ||
epics
| usage_activity_by_stage
| plan
| EE | ||
label_lists
| usage_activity_by_stage
| plan
| EE | ||
milestone_lists
| usage_activity_by_stage
| plan
| EE | ||
projects_jira_active
| usage_activity_by_stage
| plan
| EE | ||
projects_jira_dvcs_server_active
| usage_activity_by_stage
| plan
| EE | ||
projects_jira_dvcs_server_active
| usage_activity_by_stage
| plan
| EE | ||
service_desk_enabled_projects
| usage_activity_by_stage
| plan
| EE | ||
service_desk_issues
| usage_activity_by_stage
| plan
| EE | ||
deployments
| usage_activity_by_stage
| release
| CE+EE | デプロイ総数 | |
failed_deployments
| usage_activity_by_stage
| release
| CE+EE | 失敗したデプロイの合計 | |
projects_mirrored_with_pipelines_enabled
| usage_activity_by_stage
| release
| EE | リポジトリのミラーリングが有効なプロジェクト | |
releases
| usage_activity_by_stage
| release
| CE+EE | プロジェクト内のユニークなリリースタグ | |
successful_deployments
| usage_activity_by_stage
| release
| CE+EE | 成功したデプロイ総数 | |
user_preferences_group_overview_security_dashboard
| usage_activity_by_stage
| secure
| |||
ci_builds
| usage_activity_by_stage
| verify
| CE+EE | プロジェクト内のユニークなビルド | |
ci_external_pipelines
| usage_activity_by_stage
| verify
| CE+EE | 外部リポジトリにあるパイプライン合計 | |
ci_internal_pipelines
| usage_activity_by_stage
| verify
| CE+EE | GitLabリポジトリ内のパイプライン総数 | |
ci_pipeline_config_auto_devops
| usage_activity_by_stage
| verify
| CE+EE | Auto DevOpsテンプレートからのパイプライン合計 | |
ci_pipeline_config_repository
| usage_activity_by_stage
| verify
| CE+EE | リポジトリにあるテンプレートからのパイプライン | |
ci_pipeline_schedules
| usage_activity_by_stage
| verify
| CE+EE | GitLabのパイプラインスケジュール | |
ci_pipelines
| usage_activity_by_stage
| verify
| CE+EE | パイプライン合計 | |
ci_triggers
| usage_activity_by_stage
| verify
| CE+EE | トリガー有効 | |
clusters_applications_runner
| usage_activity_by_stage
| verify
| CE+EE | Runnerが有効な独自のクラスター | |
projects_reporting_ci_cd_back_to_github
| usage_activity_by_stage
| verify
| EE | GitHubパイプラインが有効なユニークなプロジェクト | |
merge_requests_users
| usage_activity_by_stage_monthly
| create
| マージリクエストを使用したユーザーのユニークカウント | ||
duration_s
| topology
| enablement
| トポロジーデータの収集に要した時間 | ||
application_requests_per_hour
| topology
| enablement
| 1時間あたりのウェブアプリケーションへのリクエスト数 | ||
failures
| topology
| enablement
| 失敗したクエリに関する情報が含まれています。 | ||
nodes
| topology
| enablement
| GitLab コンポーネントが稼働しているサーバーノードのリスト | ||
node_memory_total_bytes
| topology > nodes
| enablement
| このノードで使用可能なメモリの合計 | ||
node_cpus
| topology > nodes
| enablement
| このノードのCPUコア数 | ||
node_uname_info
| topology > nodes
| enablement
| このノードの基本ハードウェアアーキテクチャとOSリリース情報 | ||
node_services
| topology > nodes
| enablement
| このノードで稼働している GitLab サービスの一覧 | ||
name
| topology > nodes > node_services
| enablement
| このノードで稼働しているGitLabサービスの名前 | ||
process_count
| topology > nodes > node_services
| enablement
| このサービスで実行中のプロセス数 | ||
process_memory_rss
| topology > nodes > node_services
| enablement
| サービスプロセスの平均レジデントセットサイズ | ||
process_memory_uss
| topology > nodes > node_services
| enablement
| サービスプロセスの平均ユニークセットサイズ | ||
process_memory_pss
| topology > nodes > node_services
| enablement
| サービスプロセスの平均比例セットサイズ | ||
server
| topology > nodes > node_services
| enablement
| 使用するウェブサーバーの種類(UnicornまたはPuma) |
使用例 Ping ペイロード
以下は、Usage Pingペイロードの内容例です。
{
"uuid": "0000000-0000-0000-0000-000000000000",
"hostname": "example.com",
"version": "12.10.0-pre",
"installation_type": "omnibus-gitlab",
"active_user_count": 999,
"recorded_at": "2020-04-17T07:43:54.162+00:00",
"edition": "EEU",
"license_md5": "00000000000000000000000000000000",
"license_id": null,
"historical_max_users": 999,
"licensee": {
"Name": "ABC, Inc.",
"Email": "email@example.com",
"Company": "ABC, Inc."
},
"license_user_count": 999,
"license_starts_at": "2020-01-01",
"license_expires_at": "2021-01-01",
"license_plan": "ultimate",
"license_add_ons": {
},
"license_trial": false,
"counts": {
"assignee_lists": 999,
"boards": 999,
"ci_builds": 999,
...
},
"container_registry_enabled": true,
"dependency_proxy_enabled": false,
"gitlab_shared_runners_enabled": true,
"gravatar_enabled": true,
"influxdb_metrics_enabled": true,
"ldap_enabled": false,
"mattermost_enabled": false,
"omniauth_enabled": true,
"prometheus_enabled": false,
"prometheus_metrics_enabled": false,
"reply_by_email_enabled": "incoming+%{key}@incoming.gitlab.com",
"signup_enabled": true,
"web_ide_clientside_preview_enabled": true,
"ingress_modsecurity_enabled": true,
"projects_with_expiration_policy_disabled": 999,
"projects_with_expiration_policy_enabled": 999,
...
"elasticsearch_enabled": true,
"license_trial_ends_on": null,
"geo_enabled": false,
"git": {
"version": {
"major": 2,
"minor": 26,
"patch": 1
}
},
"gitaly": {
"version": "12.10.0-rc1-93-g40980d40",
"servers": 56,
"clusters": 14,
"filesystems": [
"EXT_2_3_4"
]
},
"gitlab_pages": {
"enabled": true,
"version": "1.17.0"
},
"database": {
"adapter": "postgresql",
"version": "9.6.15"
},
"app_server": {
"type": "console"
},
"avg_cycle_analytics": {
"issue": {
"average": 999,
"sd": 999,
"missing": 999
},
"plan": {
"average": null,
"sd": 999,
"missing": 999
},
"code": {
"average": null,
"sd": 999,
"missing": 999
},
"test": {
"average": null,
"sd": 999,
"missing": 999
},
"review": {
"average": null,
"sd": 999,
"missing": 999
},
"staging": {
"average": null,
"sd": 999,
"missing": 999
},
"production": {
"average": null,
"sd": 999,
"missing": 999
},
"total": 999
},
"analytics_unique_visits": {
"g_analytics_contribution": 999,
...
},
"usage_activity_by_stage": {
"configure": {
"project_clusters_enabled": 999,
...
},
"create": {
"merge_requests": 999,
...
},
"manage": {
"events": 999,
...
},
"monitor": {
"clusters": 999,
...
},
"package": {
"projects_with_packages": 999
},
"plan": {
"issues": 999,
...
},
"release": {
"deployments": 999,
...
},
"secure": {
"user_container_scanning_jobs": 999,
...
},
"verify": {
"ci_builds": 999,
...
}
},
"usage_activity_by_stage_monthly": {
"configure": {
"project_clusters_enabled": 999,
...
},
"create": {
"merge_requests": 999,
...
},
"manage": {
"events": 999,
...
},
"monitor": {
"clusters": 999,
...
},
"package": {
"projects_with_packages": 999
},
"plan": {
"issues": 999,
...
},
"release": {
"deployments": 999,
...
},
"secure": {
"user_container_scanning_jobs": 999,
...
},
"verify": {
"ci_builds": 999,
...
}
},
"topology": {
"duration_s": 0.013836685999194742,
"application_requests_per_hour": 4224,
"failures": [],
"nodes": [
{
"node_memory_total_bytes": 33269903360,
"node_cpus": 16,
"node_uname_info": {
"machine": "x86_64",
"sysname": "Linux",
"release": "4.19.76-linuxkit"
},
"node_services": [
{
"name": "web",
"process_count": 16,
"process_memory_pss": 233349888,
"process_memory_rss": 788220927,
"process_memory_uss": 195295487,
"server": "puma"
},
{
"name": "sidekiq",
"process_count": 1,
"process_memory_pss": 734080000,
"process_memory_rss": 750051328,
"process_memory_uss": 731533312
},
...
],
...
},
...
]
}
}