私のログにこの行があります。
InvokeSuperLambda 実行時間: xxs
ここで、xxは実行時間、sは静的文字です。
ログファイルでこのコマンドを実行すると
grep -a "invokeSuperLambda execution time" /root/.pm2/logs/proxy-out-1.log
わかりました。
2019-01-13 07:36:44.783,[email protected]:57888: << @@@@ Lambda
:invokeSuperLambda execution time:0s
2019-01-13 07:37:02.909,[email protected]:58952: << @@@@ Lambda
:invokeSuperLambda execution time:14s
2019-01-13 07:38:09.820,[email protected]:54992: << @@@@ Lambda
:invokeSuperLambda execution time:1s
2019-01-13 07:38:11.866,[email protected]:59132: << @@@@ Lambda
:invokeSuperLambda execution time:357s
実行時間が10秒を超える行のみをフィルタリングする方法が必要なため、上記の例では次の2行を取得する必要があります。
2019-01-13 07:37:02.909,[email protected]:58952: << @@@@ Lambda
:invokeSuperLambda execution time:14s
2019-01-13 07:38:11.866,[email protected]:59132: << @@@@ Lambda
:invokeSuperLambda execution time:357s
ベストアンサー1
次のスクリプトを使用してこれを実行できます。
TIMEX=10
awk -F\: -v timex=$TIMEX '{if (int($NF) > timex) print}' /root/.pm2/logs/proxy-out-1.log
次のようにgrepスクリプトを追加します。
TIMEX=10
grep -a "invokeSuperLambda execution time" /root/.pm2/logs/proxy-out-1.log|awk -F\: -v timex=$TIMEX '{if (int($NF) > timex) print}'