How to fetch Bamboo Data Center Idle agent reports unused for build plans and deployments using database queries
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
本記事で説明している手順は、現時点でのものとなります。そのため、一部のお客様で特定の状況下で動作したという報告がありますが、正式にサポートされているわけではなく、お客様の特定のシナリオで動作することを保証するものではありません。
本番環境での実施の前に一通り非本番環境で検証し、成功しなかった場合にはサポートされている代替案にフォール バックしてください。
要約
This article explains how to generate a list of Idle Bamboo agent reports that have been unused since a specific date for build plans and deployments from the database.
Building SQL statements for reporting purposes is not part of the Atlassian Support scope and this work is provided "as-is", on a best-effort basis. Queries may work better or worse than expected, your mileage may vary. It is up to each customer to analyze each query individually and understand if that is enough for their specific needs.
環境
The SQL queries listed on this page have been tested on Bamboo 9.2.7 with Postgres DB but may also work with other versions of Bamboo.
ソリューション
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
The SQL queries listed in this article cover the following reports:
Idle Agent unused report for builds plans
To list out remote agents who have not built any plan jobs since a specific date(say, 2024-08-12 00:00:00) use the DB query below:
SELECT DISTINCT Q.TITLE
FROM queue q LEFT JOIN buildresultsummary bs ON q.queue_id=bs.build_agent_id
where q.agent_type = 'REMOTE' AND (enabled=true or enabled=false) and (last_stop_time is null) AND Q.TITLE not in
(SELECT DISTINCT Q.TITLE
FROM queue q LEFT JOIN buildresultsummary bs ON q.queue_id=bs.build_agent_id
WHERE bs.build_completed_date > '2024-08-12 00:00:00')
Idle Agent unused report for deployment projects
To list out remote agents who have not built any deployment jobs since a specific date(say, 2024-08-12 00:00:00) use the DB query below:
SELECT DISTINCT Q.TITLE
FROM QUEUE Q LEFT JOIN DEPLOYMENT_RESULT DR ON Q.QUEUE_ID = DR.AGENT_ID
where q.agent_type = 'REMOTE' AND (enabled=true or enabled=false) and (last_stop_time is null) AND Q.TITLE not in
(SELECT DISTINCT Q.TITLE
FROM QUEUE Q LEFT JOIN DEPLOYMENT_RESULT DR ON Q.QUEUE_ID = DR.AGENT_ID
WHERE DR.FINISHED_DATE > '2024-08-12 00:00:00')