正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

パフォーマンスバー

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

パフォーマンスバーは、リアルタイムメトリクスをブラウザに直接表示し、ログを調べたり、個別のプロファイリングツールを実行したりすることなく、インサイトを提供します。

開発チームにとって、パフォーマンスバーは、どこに労力を集中すべきかを正確に示すことで、デバッグを簡素化します。

パフォーマンスバー

利用可能な情報

左から右へ、パフォーマンスバーは以下を表示します:

  • Current Host: ページを提供している現在のホスト。
  • Database queries: データベースクエリにかかった時間(ミリ秒)と合計数で、00ms / 00 (00 cached) pgの形式で表示されます。詳細が記載されたダイアログを表示するには、選択します。各クエリについて、以下の詳細を確認できます:
    • In a transaction: トランザクションのコンテキストで実行された場合、クエリの下に表示されます。
    • ロール: Databaseロードバランシングが有効な場合に表示されます。どのサーバーロールがクエリに使用されたかを表示します。「Primary」は、クエリが読み取り/書き込みプライマリサーバーに送信されたことを意味します。「Replica」は、読み取り専用レプリカに送信されたことを意味します。
    • Configuration name: これは、異なるGitLab機能用に設定された異なるデータベースを区別するために使用されます。表示される名前は、GitLabでデータベース接続を設定するために使用される名前と同じです。
  • Gitalyリクエスト: Gitalyコールにかかった時間(ミリ秒)と合計数。詳細が記載されたダイアログを表示するには、選択します。
  • Redis呼び出し: Redisコールにかかった時間(ミリ秒)と合計数。詳細が記載されたダイアログを表示するには、選択します。
  • Elasticsearchコール: Elasticsearchコールにかかった時間(ミリ秒)と合計数。詳細が記載されたダイアログを表示するには、選択します。
  • External HTTP calls: 他のシステムへの外部コールにかかった時間(ミリ秒)と合計数。詳細が記載されたダイアログを表示するには、選択します。
  • ページのLoad timings: ブラウザがロードタイミングをサポートしている場合、ミリ秒単位の値がスラッシュで区切られて表示されます。詳細が記載されたダイアログを表示するには、選択します。左から右への値:
    • バックエンド: ベースページの読み込みに必要な時間。
    • 最初のコンテンツ描画: ユーザーに何かが表示されるまでの時間。ブラウザがこの機能をサポートしていない場合、NaNが表示されます。
    • DomContentLoadedイベント。
    • ページが読み込まれたTotal number of requests
  • メモリ: 選択されたリクエスト中に消費されたメモリ量と割り当てられたオブジェクト。選択すると、詳細が記載されたウィンドウが表示されます。
  • トレース: Jaegerが統合されている場合、トレースは現在のリクエストのcorrelation_idを含むJaegerトレーシングページにリンクします。
  • +: リクエストの詳細をパフォーマンスバーに追加するリンク。リクエストは、完全なURL(現在のユーザーとして認証済み)またはX-Request-Idヘッダーの値によって追加できます。
  • ダウンロード: パフォーマンスバーレポートを生成するために使用されたraw JSONをダウンロードするリンク。
  • Memory Report: 現在のURLのメモリプロファイリングレポートを生成するリンク。
  • Flamegraph: 選択されたStackprof modeで現在のURLのフレームグラフを生成するリンク:
    • ウォールモードは、壁の時計の時間のすべての間隔をサンプリングします。間隔は10100マイクロ秒に設定されています。
    • CPUモードは、CPUアクティビティのすべての間隔をサンプリングします。間隔は10100マイクロ秒に設定されています。
    • オブジェクトモードはすべての間隔をサンプリングします。間隔は100アロケーションに設定されています。
  • Request Selector: パフォーマンスバーの右側に表示される選択ボックスで、現在のページが開いている間に作成されたすべてのリクエストのこれらのメトリクスを表示できます。一意のURLごとに最初の2つのリクエストのみがキャプチャされます。
  • 統計: GITLAB_PERFORMANCE_BAR_STATS_URL環境変数が設定されている場合、このURLがバーに表示されます。GitLab.comでのみ使用されます。

すべてのインジケーターがすべての環境で利用できるわけではありません。たとえば、メモリビューは特定のパッチが適用されたRubyを実行する必要があります。GDKを使用してGitLabをローカルで実行している場合、通常はそうではなく、メモリビューを使用できません。

キーボードショートカット

p + bキーボードショートカットを押して、パフォーマンスバーを表示し、もう一度押すと非表示にします。

非管理者がパフォーマンスバーを表示するには、有効にする必要があります。

リクエスト警告

事前定義された制限を超えるリクエストは、警告 warning アイコンと、メトリクスの横に説明が表示されます。この例では、Gitalyコールの期間がしきい値を超えました。

Gitalyコールの期間がしきい値を超えました

非管理者向けパフォーマンスバーを有効にする

パフォーマンスバーは、非管理者に対してデフォルトで無効になっています。特定のグループに対して有効にするには:

  1. 管理者アクセスを持つユーザーとしてサインインします。
  2. 右上隅で、管理者を選択します。
  3. 設定 > メトリクスとプロファイリングを選択します。
  4. プロファイリング - パフォーマンスバーを展開します。
  5. 管理者以外のメンバーにパフォーマンスバーへのアクセスを許可するを選択します。
  6. 次のグループのメンバーにアクセスを許可するフィールドで、パフォーマンスへのアクセスが許可されているグループの完全なパスを入力します。
  7. 変更を保存を選択します。