Jenkins監視をツールで簡単に。
ジェンキンスを低コストでモニタリング

Jenkins(ジェンキンス)は、オープンソースの継続的インテグレーション(CI)と継続的デリバリー(CD)支援ツールで、ソフトウェア開発プロセスにおけるビルド、テスト、デプロイ作業の自動化を支援します。Jenkinsはソフトウェア開発において重要な役割を果たしており、リソース競合の問題が発生してJenkinsのパフォーマンスが低下すると、ソフトウェアのビルドやデプロイが遅延する可能性があります。顧客からの信頼を確保するためには、Jenkinsのパフォーマンスを監視し、問題を早期に検出して対処することが重要です。

Site24x7のJenkins監視プラグインは、Jenkinsのパフォーマンスを監視するほか、プラグインごとにJenkinsログを管理し、メトリクスや問題を関連付けることができます。管理者は、監視情報を元にさまざまなデータを効率的に分析し、問題を迅速に特定することが可能です。

今すぐ30日間の無料トライアルを開始する (登録は30秒で完了します)
ジェンキンス監視

Jenkins のパフォーマンスを監視

Jenkinsのパフォーマンスの継続的な監視は、Jenkinsの効果的な運用のために欠かせません。Site24x7のJenkins監視プラグインでJenkinsを監視することで、DevOpsチームは以下を実現できます。

  • キュー内の成功したビルド・失敗したビルドの傾向の定期的な分析
  • Jenkinsサーバーにおけるレイテンシーの急増を回避するためのヘルスチェックの実行
  • 関連するプロジェクト数の監視
  • 使用されているプラグインリストの追跡
  • エンティティが壊れた場合の即時アラートの受信

パフォーマンスメトリクス

Site24x7のJenkins監視プラグイン連携を使用することで、Jenkinsのパフォーマンス、すべてのジョブ、特定のジョブ、Java VM、Webアクセスを監視できます。各メトリクスの詳細は以下のとおりです。

Jenkinsのパフォーマンスメトリクス

  • ノード数

    node_count ノードの総数を記録

  • ヘルスチェック回数

    health-check_count ヘルスチェックの数を取得

  • ヘルスチェックの時間

    health-check_duration ヘルスチェックの実行速度を秒単位で表示

  • オフラインのノード数

    nodes_offline オフラインのノード数を表示

  • オンラインのノード数

    nodes_online オンラインのノード数を表示

  • プロジェクト数

    projects_count プロジェクトの総数を取得

  • 無効のプロジェクト数

    projects_disabled 無効になっているプロジェクトの総数を取得

  • 有効なプロジェクト

    projects_enabled 有効になっているプロジェクトの総数を取得

  • キューサイズ

    queue_sizeキュー内のジョブの総数を表示

  • エグゼキューター数

    executor_count Jenkinsで使用できるエグゼキューターの数を表示

  • 使用されていないエグゼキューター数

    executors_free_count 現在使用されていないエグゼキューターの数を表示

  • 使用中のエグゼキューター数

    executors_inuse_count 使用中のエグゼキューターの数を表示

  • 保留中のキュー

    queues_pending キュー内の保留中のジョブの数を取得

  • スタック中のキュー

    queues_stuck キュー内でスタックしているジョブの数を取得

  • ブロックされたキュー

    queues_blocked キュー内でブロックされたジョブの数を取得

  • キュー内のジョブ

    jobs_in_queue キュー内のビルド可能なアイテムの数を表示

  • アクティブなプラグイン

    plugins_active アクティブなプラグインの数を表示

  • 失敗したプラグイン

    plugins_failed 失敗したプラグインの数を表示

  • 非アクティブなプラグイン

    plugins_inactive 非アクティブなプラグインの数を表示

  • アップデートのあるプラグイン

    plugins_withupdate 更新が保留されているプラ​​グインの数を表示

  • ビルドのブロック時間

    builds_blocked_duration ビルドがブロック状態にある時間を秒単位で表示

  • ビルドの作成時間

    build_creation_time ビルドが完了するまでにかかる時間を表示

  • ビルドの実行時間

    builds_execution_duration ビルドの実行時間を秒単位で表示

  • ビルドのキュー時間

    builds_queuing_duration ビルドのキュー時間を秒単位で表示

  • ビルドの待機時間

    builds_waiting_duration ビルドがキュー内で待機している時間を秒単位で表示

すべてのJenkinsジョブ監視メトリクス

  • ジョブ数

    job_count ジョブの数を取得

  • ジョブのスケジュールレート

    jobs_scheduled_rate ジョブがスケジュールされる速度を、1分あたりのイベント数で表示

  • ジョブのブロック時間

    jobs_blocked_duration ジョブがブロックされた状態でビルドキュー内にとどまっていた時間を秒単位で表示

  • ジョブのビルド可能時間

    jobs_execution_time ジョブがビルド可能な状態にある時間を表示

  • ジョブの実行時間

    jobs_execution_time ジョブの実行にかかる時間を秒単位で表示

  • ジョブのキューイング時間

    jobs_queuing_duration ジョブがビルドキューで待機している時間を秒単位で表示

  • ジョブの合計時間

    jobs_total_duration ジョブがビルドキューに入ってからビルドが完了するまでにかかる時間を秒単位で表示

  • ジョブの待機時間

    jobs_waiting_duration ジョブが静止状態で待機している時間を秒単位で表示

特定のJenkinsジョブ監視メトリクス

  • ビルド数

    build_count ジョブ内のビルドの数を取得

  • ジョブの最後のビルドキューID

    job_lastbuild_queueid 最後のビルドのキューIDを取得します。

  • ジョブの最後のビルド時間

    job_lastbuild_duration 最後のビルドにかかった時間をミリ秒単位で表示

  • ジョブの最後のビルドの推定所要時間

    job_lastbuild_estimated_duration 最後のビルドにかかる推定時間をミリ秒単位で表示

  • ジョブの最後のビルド ID

    job_lastbuildid 最後のビルドのIDを取得

  • ジョブの最後のビルド番号

    job_lastbuild_number ジョブ内の最後のビルドの番号を取得

  • 失敗したビルド数

    build_failed 失敗したビルドの数を取得

  • 成功したビルド数

    build_success 成功したビルドの数を取得

  • 中止されたビルド数

    build_aborted 中止されたビルドの数を取得

JenkinsのJava VM監視メトリクス

  • ブロックされた数

    blocked_count 現在ブロックされているスレッドの数を表示

  • スレッド総数

    total_count スレッドの総数を表示

  • デッドロック数

    deadlock_count 現在デッドロックが検出されているスレッドの数を取得

  • ファイルディスクリプタの比率

    file_descriptor_ratio ファイルディスクリプタの総数に対する使用済みのファイルディスクリプタの比率を表示

  • ヒープメモリ量

    heap_memory_committed ヒープメモリの量をバイト単位で表示

  • 開始されたヒープメモリ

    heap_memory_initiated 新しく割り当てられたヒープメモリの量をバイト単位で表示

  • 最大ヒープメモリ

    maximum_heap_memory ヒープメモリの最大量をバイト単位で表示

  • 使用されているヒープメモリ

    heap_memory_used 現在使用されているヒープメモリの量をバイト単位で表示

  • 非ヒープメモリ量

    non-heap_memory_committed 非ヒープメモリの量をバイト単位で表示

  • 開始された非ヒープメモリ

    non-heap_memory_initiated 新しく割り当てられた非ヒープメモリの量をバイト単位で表示

  • 最大非ヒープメモリ

    maximum_non-heap_memory 使用されている非ヒープメモリの最大量をバイト単位で表示

  • 使用されている非ヒープメモリ

    non-heap_memory_used 現在使用されている非ヒープメモリの量をバイト単位で表示

  • 割り当てられたメモリの合計

    total_memory_committed 割り当てられたメモリの総量をバイト単位で表示

  • 開始されたメモリの合計

    total_memory_initiated 新しく割り当てられたメモリの総量をバイト単位で表示

  • 最大メモリ合計

    total_maximum_memory 使用されている全メモリの最大量をバイト単位で表示

  • 使用されている合計メモリ

    total_memory_used 使用されているメモリの合計量をバイト単位で表示

  • 新しいスレッド

    new_threads 実行を開始していないスレッドの数を表示

  • 実行中のスレッド

    running_threads 現在実行中のスレッドの総数を表示

  • 終了したスレッド

    terminated_threads 実行を完了したスレッドの総数を表示

  • 中断されたスレッド

    suspended_threads 実行を一時停止したスレッドの総数を表示

  • 待機中のスレッド

    waiting_threads 実行を待機しているスレッドの総数を表示

JenkinsのWebアクセス監視メトリクス

  • アクティブなリクエストの合計

    total_activerequests 現在アクティブなリクエストの総数を表示

  • 不正なリクエストの合計

    total_badrequest HTTP/400ステータスコードで返されたリクエストの総数を表示

  • 作成済みリクエストの合計

    total_responsecode_created HTTP/201ステータスコードで返されたリクエストの総数を表示

  • 禁止されたリクエストの合計

    total_forbidden_responsecode HTTP/403ステータスコードで返されたリクエストの総数を表示

  • コンテンツなしのリクエストの合計

    noContent_responsecode HTTP/204ステータスコードで返されたリクエストの総数を表示

  • 見つからないリクエストの合計

    notFound_responsecode HTTP/404ステータスコードで返されたリクエストの総数を表示

  • 未変更のリクエストの合計

    unmodified_responsecode HTTP/304ステータスコードで返されたリクエストの総数を表示

  • 成功したリクエストの合計

    success_responsecode HTTP/200ステータスコードで返されたリクエストの総数を表示

  • 非情報ステータスコードが返されたリクエストの合計

    non_informational_responsecode 情報ステータスコード以外のステータスコードで返されたリクエストの総数を表示

  • サーバーエラーステータスコードが返されたリクエストの合計

    servererror_responsecode HTTP/500ステータスコードで返されたリクエストの総数を表示

  • サービス利用不可のリクエストの合計

    service_unavailable HTTP/503ステータスコードで返されたリクエストの総数を表示

  • リクエスト時間

    request_duration 対応するコードの生成に要した時間を取得

セットアップ方法

次のガイドラインに従ってセットアップしてください。

事前準備

  • プラグインを実行するサーバーに、Site24x7のサーバー監視エージェント(Linux版/Windows版)の最新バージョンをダウンロードし、インストールします。
  • JenkinsにてAPIキーを生成します。
  • 「Jenkins > Manage Jenkins > Manage plugins > Available」に移動して、Jenkinsから メトリクスプラグインをインストールします。
  • 「Jenkins > Manage Jenkins > Configure system」に移動し、「メトリクス」セクションからAPIキーを生成します。

インストール

LinuxサーバーにSite24x7のJenkins監視プラグインをインストールする手順は次のとおりです。

  • Site24x7のLinuxサーバー監視エージェントプラグインディレクトリの下に、ディレクトリjenkins_performanceを作成します。
    /opt/site24x7/monagent/plugins/jenkins_performance
  • GitHubからjenkins_performanceフォルダー内のすべてのファイルをダウンロードし、jenkins_performanceディレクトリの下に格納します。
  • wget
    https://raw.githubusercontent.com/site24x7/plugins/master/jenkins_performance/jenkins_performance.py
  • wget
    https://raw.githubusercontent.com/site24x7/plugins/master/jenkins_performance/jenkins_performance.cfg

上記手順の完了後、Site24x7のサーバー監視エージェントが5分以内にプラグインを自動的に実行し、Site24x7のデータセンターにパフォーマンスデータを送信します。

構成

  • [jenkins_performance]
  • host = < host_name>
  • port = < port_number>
  • username = < username>
  • password = < password>
  • apikey = < apikey>

プラグイン出力の検証

以下のコマンドを実行して、さまざまなJenkinsプラグインの出力を検証します。
適切な引数を指定して各コマンドを実行し、有効なJSON出力を確認してください。

Jenkin_performanceプラグイン

python jenkins_performance.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_jobプラグイン

python jenkins_job.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_jobプラグイン

python jenkins_job.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_jvmプラグイン

python jenkins_jvm.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

Jenkin_webプラグイン

python jenkins_web.py --host=< host_name> --port=< port_number> --username=< username> --password=< password> --apikey=< apikey>

  • サポートしているプラ​​ットフォーム:サポートされているOS
  • Pythonバージョン:2.7 & above
  • Linuxエージェントバージョン:15.0.0 & above