統計接口並發請求數量


編寫思路:

1、使用"grep"讀取接口日志,並從中獲取一分鍾接口請求條目
2、使用"awk"截取時間部分(到秒)
3、使用"uniq -c"統計重復時間數量(即每秒的請求條目數量=請求並發數量(QPS))
4、使用"awk"截取每秒的請求條目數量部分,並使用"sort -nr"進行降序排序
5、最后使用"head -n 1"獲取一分鍾之內最大請求並發數量

日志內容:

2020-10-11 10:12:16.891 c.w.z.s.JxAuthenticationFilter [INFO] - 收到請求: FAB0D8CE52761C2090EB8743C5556795 request to http://yzapi.winsunexpo.com/expo/api/ticket/get,參數:{"token":["3xxxa677e8eb049208b9a9ab96d29f54"],"expoId":["2"],"appId":["5dxxxf8d78ace679544b15b5e2c7d1bc"],"timestamp":["1601596429898"],"device":["h5"]},,IP:47.97.115.208

腳本內容:

grep -E "^$(date +%Y-%m-%d\ \%H:%M).*收到請求.*" /var/log/wsexpo_server/wsexpo-zuul/wsexpo-zuul.$(date +%Y-%m-%d).log|awk -F '.' '{print $1}'|uniq -c|awk '{print $1}'|sort -nr|head -n 1

說說好處:

使用"grep"命令截取較少的日志,相比其他"sed\cat"等命令其執行效率更高,執行時間更短(可以使用"time"命令測試一下),並只需要占用較少的CPU。
當配合監控工具進行獲取監控值時,如果每秒都去執行獲取接口並發數量,這將占用大量的CPU時間,所以我們盡量降低執行腳本的頻率,以上示例獲取並處理一分鍾的日志,即每分鍾執行一次(建議)。

其他補充:

可以通過以上方式結合Zabbix等監控工具完成對接口的並發請求數量的監控!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM