CI/CDジョブログ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
ジョブログには、CI/CDジョブの完全な実行履歴が表示されます。
ジョブログの表示
ジョブログを表示するには、次の手順に従います:
- ジョブログを表示するプロジェクトを選択します。
- 左側のサイドバーで、CI/CD > パイプラインを選択します。
- 検査するパイプラインを選択します。
- パイプラインビューのジョブリストで、ジョブを選択してジョブログページを表示します。
ジョブとそのログ出力に関する詳細情報を表示するには、ジョブログページをスクロールします。
全画面モードでジョブログを表示
全画面表示するをクリックすると、ジョブログの内容を全画面モードで表示できます。
全画面表示モードを使用するには、Webブラウザもそれをサポートしている必要があります。Webブラウザが全画面表示モードをサポートしていない場合、そのオプションは使用できません。
ジョブログセクションを折りたたむ、展開する
ジョブログは、折りたたみまたは展開可能なセクションに分割されています。各セクションには期間が表示されます。
次の例では:
- 3つのセクションが折りたたまれ、展開できます。
- 3つのセクションが展開され、折りたたむことができます。
カスタム折りたたみ可能なセクション
GitLabが折りたたみ可能なセクションの区切りに使用する特別なコードを手動で出力することにより、ジョブログに折りたたみ可能なセクションを作成できます:
- セクション開始マーカー:
\e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K+TEXT_OF_SECTION_HEADER - セクション終了マーカー:
\e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K
これらのコードをCI設定のスクリプトセクションに追加する必要があります。たとえば、echoを使用する場合は次のようになります。
job1:
script:
- echo -e "\e[0Ksection_start:`date +%s`:my_first_section\r\e[0KHeader of the 1st collapsible section"
- echo 'this line should be hidden when collapsed'
- echo -e "\e[0Ksection_end:`date +%s`:my_first_section\r\e[0K"エスケープ構文は、Runnerが使用するシェルによって異なる場合があります。たとえば、Zshを使用している場合、特殊文字を\\eまたは\\rでエスケープする必要がある場合があります。
上記の例では、次のようになります:
date +%s: Unixタイムスタンプを生成するコマンド(たとえば、1560896352)。my_first_section: セクションに付けられた名前。名前は、文字、数字、および_、.、または-文字のみで構成できます。\r\e[0K: レンダリングされた(色付きの)ジョブログにセクションマーカーが表示されないようにするエスケープシーケンス。これらはrawジョブログを表示するときに表示されます。ジョブログの右上隅にある完全なrawを表示 ( ) を選択してアクセスします。\r:キャリッジリターン(カーソルを行の先頭に戻します)。\e[0K: カーソル位置から行の末尾までをクリアするANSIエスケープコード。(\e[Kだけでは機能しません。0を含める必要があります)。
サンプルrawジョブログ:
\e[0Ksection_start:1560896352:my_first_section\r\e[0KHeader of the 1st collapsible section
this line should be hidden when collapsed
\e[0Ksection_end:1560896353:my_first_section\r\e[0Kサンプルジョブコンソールログ:
スクリプトを使用して、折りたたみ可能なセクションの表示を改善する
ジョブの出力からセクションマーカーを作成するechoステートメントを削除するには、ジョブの内容をスクリプトファイルに移動して、ジョブから実行することができます:
セクションヘッダーを処理できるスクリプトを作成します。例:
# function for starting the section function section_start () { local section_title="${1}" local section_description="${2:-$section_title}" echo -e "section_start:`date +%s`:${section_title}[collapsed=true]\r\e[0K${section_description}" } # Function for ending the section function section_end () { local section_title="${1}" echo -e "section_end:`date +%s`:${section_title}\r\e[0K" } # Create sections section_start "my_first_section" "Header of the 1st collapsible section" echo "this line should be hidden when collapsed" section_end "my_first_section" # Repeat as requiredスクリプトを
.gitlab-ci.ymlファイルに追加します:job: script: - source script.sh
セクションを事前に折りたたむ
セクションの開始にcollapsedオプションを追加することにより、ジョブログが折りたたみ可能なセクションを自動的に折りたたむようにすることができます。セクション名の後、\rの前に[collapsed=true]を追加します。セクション終了マーカーは変更されません:
[collapsed=true]付きのセクション開始マーカー:\e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME[collapsed=true]\r\e[0K+TEXT_OF_SECTION_HEADER- セクション終了マーカー(変更なし):
\e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K
更新されたセクション開始テキストをCI設定に追加します。たとえば、echoを使用する場合は次のようになります。
job1:
script:
- echo -e "\e[0Ksection_start:`date +%s`:my_first_section[collapsed=true]\r\e[0KHeader of the 1st collapsible section"
- echo 'this line should be hidden automatically after loading the job log'
- echo -e "\e[0Ksection_end:`date +%s`:my_first_section\r\e[0K"ジョブログを削除
ジョブログを削除すると、ジョブ全体を消去します。
詳細については、ジョブログを削除を参照してください。
タイムスタンプ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
デフォルトでは、ジョブログには各行のISO 8601形式のタイムスタンプが含まれています。タイムスタンプを使用して、パフォーマンスの問題のトラブルシューティング、ボトルネックの特定、特定のビルドステップにかかる時間の測定を行います。
タイムスタンプを有効にすると、ジョブログで使用するストレージ容量が約10%増加します。
以下は、タイムスタンプ付きのジョブログの例を示しています:
ジョブログのタイムスタンプを制御
前提条件:
- GitLab Runner 18.7以降。
ジョブログにタイムスタンプを表示するかどうかを制御するには、FF_TIMESTAMPS CI/CD変数を使用します:
- タイムスタンプを無効にするには、
falseに設定します - タイムスタンプを明示的に有効にするには、
trueに設定します
例:
variables:
FF_TIMESTAMPS: false # Disables timestamps
job:
script:
- echo "This job's log behavior depends on FF_TIMESTAMPS value"詳細については、.gitlab-ci.ymlファイルでCI/CD変数を定義するを参照してください。
トラブルシューティング
ジョブログの更新が遅い
実行中のジョブのジョブログページにアクセスすると、ログが更新されるまでに最大60秒の遅延が発生する可能性があります。デフォルトの更新時間は60秒ですが、ログがUIで1回表示された後は、ログの更新が3秒ごとに実行されるはずです。
エラー:GitLab 18.0以降のThis job does not have a trace
GitLab Self-Managedインスタンスを18.0以降に移行すると、This job does not have a traceエラーが表示される場合があります。これは、次の両方を含むインスタンスでの移行の失敗が原因である可能性があります:
- オブジェクトストレージが有効
- 削除されたフィーチャフラグ
ci_enable_live_traceで以前に有効にされたインクリメンタルロギング。このフィーチャフラグは、GitLab Environment ToolkitまたはHelm Chartデプロイでデフォルトで有効になっていますが、手動で有効にすることもできます。
影響を受けるジョブのジョブログを表示する機能を復元するには、増分ロギングを再度有効にします


