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

パフォーマンスバー

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

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

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

パフォーマンスバー

利用可能な情報

パフォーマンスバーには、左から右に以下の内容が表示されます:

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