0Pricing
DevOps Bootcamp · レッスン

パイプライン監視戦略

CI/CD パイプラインの状態、パフォーマンス、成功率を監視する方法を学びます。

「パイプライン監視戦略」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

パイプラインを監視する理由

複雑な機械を作る場面を想像してみてください。電源を入れて、うまく動くことを願うだけにはしませんよね。正常に動作しているか、効率的か、故障していないかを確認したいはずです。

CI/CDパイプラインも同じです。監視によって、パイプラインの健全性、パフォーマンス、信頼性を把握できます。ボトルネックの特定や問題の防止、スムーズなソフトウェアデリバリーの実現に欠かせません。

パイプラインの重要なメトリクス

パイプラインの健全性を正しく把握するには、次の主要なメトリクスに注目します。

  • 成功率:パイプラインが正常に完了する頻度です。
  • 失敗率:パイプラインが失敗する頻度です。
  • 実行時間:実行にかかる時間です。
  • リードタイム:コードのコミットからデプロイの成功までにかかる時間です。

これらを追跡することで、問題を特定し、効率を改善し、データに基づいた意思決定を行えます。

GitHub Actions組み込みビュー

GitHub Actionsには、リポジトリのインターフェースからワークフローを直接監視できる、わかりやすい機能があります。

GitHubリポジトリの「Actions」タブを開いてください。ここでは、すべてのワークフロー実行の一覧、ステータス(成功、失敗、保留中)、実行時間を確認できます。特定の実行をクリックすると、各ジョブとステップの詳細なログが表示されるため、デバッグに非常に役立ちます。

バッジでステータスをすばやく確認

パイプラインのステータスをひと目で表示したいと思いませんか。GitHub Actionsでは、ステータスバッジをリポジトリのREADMEファイルに直接埋め込めます。

バッジは自動的に更新され、最新のワークフロー実行のステータス(成功や失敗など)をリアルタイムで視覚的に示します。バッジ用のMarkdownは、「Actions」タブから生成できます。

![CI Workflow Status](https://github.com/OWNER/REPO/actions/workflows/ci.yml/badge.svg)

ジョブとステップのステータスを理解する

GitHub Actionsワークフローのすべてのジョブとステップには、success、failure、cancelled、skippedのいずれかのステータスがあります。

デフォルトでは、ジョブ内のいずれかのステップが失敗すると、ジョブは直ちに停止します。個々のステータスを理解することは、さまざまな結果に適切に対応できる堅牢なパイプラインを構築するうえで重要です。

name: Status Check Example
on: [push]
jobs:
  check_status:
    runs-on: ubuntu-latest
    steps:
      - name: First step (success)
        run: echo "This step always succeeds"
      - name: Second step (simulated failure)
        run: exit 1
      - name: Third step (only if previous fails)
        if: failure()
        run: echo "Previous step failed!"

'if'でステータスに応じて処理する

if条件キーワードを使うと、前のステップの成功や失敗など、特定の条件を満たした場合にのみステップやジョブを実行できます。

これにより、失敗時だけ通知を送信したり、成功後にリソースをクリーンアップしたりするなど、障害に強いパイプラインを構築できます。

name: Conditional Run Example
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Always run this
        run: echo "Starting build..."
      - name: This step might fail
        run: exit 0 # Change to 'exit 1' to see failure branch
      - name: Run on success
        if: success()
        run: echo "Build succeeded!"
      - name: Run on failure
        if: failure()
        run: echo "Build failed, sending alert!"

カスタムログメッセージの追加

GitHub Actionsでは詳細なログが自動的に提供されますが、明確性を高めたりデバッグを容易にしたりするために、独自のメッセージを追加したい場合があります。

runステップ内でechoなどの標準シェルコマンドを使うと、カスタムメッセージ、変数、進行状況の更新情報をワークフローのログに直接出力できます。

name: Custom Logging Example
on: [push]
jobs:
  log_info:
    runs-on: ubuntu-latest
    steps:
      - name: Print current time
        run: echo "Workflow started at: $(date)"
      - name: Perform a task
        run: |
          echo "Simulating a task..."
          sleep 2
          echo "Task completed."

実行時間の追跡

ジョブとステップの実行時間を監視することは、パフォーマンスのボトルネックを特定し、パイプラインを最適化するうえで重要です。

GitHub Actionsのログには、各ステップのタイムスタンプが自動的に含まれます。また、ジョブレベルでtimeout-minutesを設定すると、ワークフローが無期限に実行されるのを防ぐために最大実行時間を指定できます。

name: Job Timeout Example
on: [push]
jobs:
  long_job:
    runs-on: ubuntu-latest
    timeout-minutes: 1 # Job will be cancelled after 1 minute
    steps:
      - name: Start a long process
        run: |
          echo "Starting a process that takes 2 minutes..."
          sleep 120 # This will exceed the timeout
      - name: This step might not run
        run: echo "Process finished."

高度なデータ取得

より高度な監視やカスタム分析を行うには、GitHub APIを使ってワークフロー実行データにプログラムからアクセスできます。

これにより、ワークフローのステータス、実行時間、ログに関する詳細情報を取得し、カスタムダッシュボードや詳細な分析、外部監視システムとの統合に利用できます。UIを超えた柔軟なオブザーバビリティを実現できます。

ステータスのクイックチェック

次のワークフローのスニペットについて考えてみてください。「Build Project」ステップが失敗した場合、ログには何が出力されますか。

name: Question Workflow
on: [push]
jobs:
  ci:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Build Project
        run: exit 1 # Simulate a failure
      - name: Notify on Success
        if: success()
        run: echo "Project built successfully!"
      - name: Notify on Failure
        if: failure()
        run: echo "Build failed, review logs."

まとめ:パイプラインの監視

よくできました。CI/CDパイプラインを監視する方法を学びました。

  • GitHubに組み込まれた監視機能とステータスバッジについて確認しました。
  • if条件を使って、ジョブやステップのステータスに対応する方法を学びました。
  • カスタムログメッセージの追加とジョブの実行時間の追跡について確認しました。

これらの方法により、堅牢で信頼性が高く、パフォーマンスに優れたパイプラインを実現できます。次は、外部監視ツールとの統合について学んでみるとよいでしょう。

よくある質問

「パイプライン監視戦略」レッスンは無料ですか?

はい。「パイプライン監視戦略」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「パイプライン監視戦略」で何を学びますか?

CI/CD パイプラインの状態、パフォーマンス、成功率を監視する方法を学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「パイプライン監視戦略」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. パイプライン監視戦略
  2. 外部サービスとの統合
  3. 通知とアラートの設定
  4. 構造化ログと分散トレーシング
← DevOps Bootcampに戻る