Confluence でもっともよく利用されているマクロの一覧を取得する方法
目的
Confluence 管理者が、ユーザーによってアクティブに利用されているマクロを把握するためにマクロの長期的な利用状況を監査したい場合があります。背景としては、Confluence プラグインの定期的なクリーンアップや、アップグレードの一貫としてのプラグイン (マクロを提供するもの) の評価などが考えられます。
Confluence Cloud および Confluence 5.10 (以降) の場合のソリューション
Confluence Cloud または Confluence 5.10 以降を利用している場合、 > [一般設定] > [マクロの使用] の順に移動することで、特定のアドオン (組み込みのアドオンを含む) によって提供されるマクロがサイト内で利用される頻度を確認できます。また、現在のスペースのどのページでも利用されていないマクロを持つアドオンの一覧も表示されます。これは、特定のアドオンの削除を検討しているが、それによってサイト内で "不明なマクロ" エラーが発生するのを防ぎたい場合に便利です。
Confluence 5.9 以前の場合のソリューション
Confluence データベースで次のクエリを実行します。
この SQL クエリは、1 つ以上のマクロを持つ、Confluence 内の現在のすべてのコンテンツの保存形式を出力します (つまり履歴ページは返されません)。データセットが大きい場合、このクエリには非常に長い時間がかかる可能性があります。このため、このクエリは本番環境のデータベースではなく本番環境からクローンしたデータベースに対して実行することを強く推奨します。
本番環境の DB の大きさによっては、結果のファイルが 5 GB を超える可能性があります。保存に十分な領域がファイル システムに存在することを確認してください。
SELECT bc.body FROM BODYCONTENT bc JOIN CONTENT c ON bc.contentid = c.contentid WHERE c.prevver IS NULL AND bc.body LIKE '%ac:structured-macro%';
- 結果を CSV ファイル (コンマ区切りファイル) としてエクスポートします。これはご利用のデータベース ツールを利用して行えます。
次に、Linux ターミナルまたは Cygwin で、生成済みの CSV ファイルに対して次のコマンドを実行します。
awk 'BEGIN{FS=OFS=" ";}{for(i=1;i<=NF;i++){if($i~/<ac:structured-macro/){if($(i+1)~/ac:name/) {print $(i+1)} else {print $(i+2)} }}}' <filename> | cut -d"\"" -f3 | sort | uniq -c | sort -g
<filename> を CSV ファイルで置き換えます。
これにより、次のような結果が得られます。
22 recently-updated 19 column 9 panel 4 gallery 3 section 3 pagetree 2 gadget 1 viewfile 1 pagetreesearch 1 calendar