```shell
pm2 日志接口进行每日定时获取平均值降序排序,排查长时间耗时接口
环境 centos7
1
首先把pm2日志按每日进行切割
官方文档 https://pm2.keymetrics.io/docs/usage/log-management/
安装
2配置 默认即可
vim /root/.pm2/module_conf.json
重启 pm2 即刻生成
2
[Nest] 6439 - 04/29/2022, 6:03:00 PM LOG [test-API] <---- abc/abctest aopdsiaposdiaposdi 26ms
04/29/2022, 6:03:00 PM,abc/abctest ,aopdsiaposdiaposdi,26
https://pypi.org/project/querycsv/
python setup.py install
[root@test analyzelogs]
logs=/root/.pm2/logs/*out__$(date "+%Y-%m-%d")_00-00-00.log
suffix=$(date -d yesterday "+%Y%m%d")
cd /root/.pm2/logs/analyzelogs
cat -n $logs | grep test-API | grep '<----' | sort -nk 14 -r | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | awk '{print $5,$6,$7","$11,","$12","$13}' | sed 's/ms$//g' > analysis$suffix.csv
sed -i "1i date,time,path,id,ms" analysis$suffix.csv
querycsv.py -i analysis$suffix.csv "select avg(ms),sum(1),path from analysis$suffix group by path order by avg(ms) desc" >> analysis$suffix.csv
[root@test analyzelogs]
3
crontab -e
每日早上9点运行任务