MongoDBのログからスロークエリの洗い出しを行った際のメモです。
# COLLSCAN(インデックスを使わないフルスキャン)のみ抽出
$ sudo grep "COLLSCAN" <path_to>/mongod.log > stats.txt
# awkとsortで実行時間順(降順)に並び替え、headで上位10件を取得
$ awk '{ print $NF,$0 }' stats.txt | sort -r | head
642ms 2023-02-06T14:35:56.695+0900 *****
261ms 2023-02-06T14:35:57.862+0900 *****
256ms 2023-02-06T14:35:57.860+0900 *****
243ms 2023-02-06T14:35:59.892+0900 *****
234ms 2023-02-06T14:35:56.121+0900 *****
232ms 2023-02-06T14:35:54.101+0900 *****
229ms 2023-02-06T14:35:48.463+0900 *****
218ms 2023-02-06T14:35:56.094+0900 *****
215ms 2023-02-06T14:35:53.985+0900 *****
215ms 2023-02-06T14:35:48.458+0900 *****
※MongoDBのデフォルト設定では100ms以上かかったクエリしかログに残らないようなので、100ms未満のクエリを確認する際は設定の変更が必要。