Jenkinsの上にダッシュボードを作成しました。これにより、ユーザーはプロジェクトに関連するジョブのみを表示し、ビルドを開始できます。 UIはreactJSを使用して構築され、バックエンドはJAVA REST WebServicesです。Jenkins APIの応答調整
WebServiceはJenkins APIを呼び出してジョブ情報を取得し、そのデータをJSONに変換してUIに供給します。現在、ダッシュボードには約200のジョブがあります。 Jenkins APIが詳細に対応するのに約2分かかります。
ジェンキンスは
OracleLinux 6 x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz/39.25 GB
ジェンキンスバージョンのLinuxボックス上で実行されている - APIはの詳細を取得するために200のジョブのために200回と呼ばれる16のexecutorおよび2000の以上のジョブ
Sample API Call - http://jenkins:8080/job/jobName/api/json?tree=displayName,builds[result],lastBuild[estimatedDuration,result,duration,number,timestamp,actions[causes[userName]]]
で1.564それぞれの仕事。
API応答のスピードアップに関するアドバイス
私は、Linuxボックス上でRAMを増やし、JVMのOPTSを調整することを検討しました。また、Jenkinsを最新のLTSにアップグレードします。
あなたの仕事には多くのビルドがありますか?私はJenkinsチームがビルドの遅延読み込みに取り組んでいることは知っていますが、どのバージョンにこれらの改善があるのかわかりません。例えば。ジョブをロードするとすぐにすべてのビルドがロードされます。新しいバージョンでは、レンダーページ/クエリを表示するのに必要なものを読み込みます。また、ツリークエリの 'builds [result]'部分は危険です。これは、古いバージョン(レイジーローディングを伴う)では、ジョブがすべてのビルドを強制的にロードするためです。この理由は、ページングが行われなかったことである。それ以降のバージョンでは返すビルドの範囲を指定する必要がありますが、デフォルトは20です。 –
私たちはジョブごとに30のビルドの履歴を保持しています。私はすべてのプラグインが互換性がない可能性があるので、Jenkinsのコアをアップグレードすることを心配しています。私たちはいくつかのプラグインを使って動作させています。 – Upen
さて、それは怠惰な読み込みではない、30のビルドはあまりないです。実際には1000以上のビルドを持つジョブの問題です。 –