統計客戶呼叫介面的次數

2021-08-15 03:43:24 字數 1567 閱讀 4778

由於使用者行為異常,需要定位是哪個使用者頻繁呼叫某乙個介面。

日誌大致格式如下:

10:33:13.412 [dubboserverhandler-10.999.111.888:20880-thread-200] info  c.s.f.c.a.serviceexceptionadvice[64] - call method createtoken,input:["0001122798"],return:,cost:7
簡潔方式:

grep "call method getcustbaseinfo" c.log| awk -f"," ''|sort|uniq -c|sort -n

下面寫的比較囉嗦:

查詢出所有呼叫該介面的使用者:

cat c.log |grep 'createtoken'|grep 'data'
可以儲存到檔案

cat c.log |grep 'createtoken'|grep 'data' > tmp.txt
列出客戶編號:

awk -f"input:" ''|sort |uniq > custnocount.txt

每個客戶呼叫次數:

for i in `cat custnocount.txt`

do count=`cat c.log |grep $i |wc -l`

echo "custno:"$i"累計成功請求 "$count" 次"; >> result.txt

done

對結果排序:

sort的一般用法

[root@mail text]# cat sort.txt

aaa:bb:cc

aaa:30:1.6

ccc:50:3.3

ddd:20:4.2

bbb:10:2.5

eee:40:5.4

eee:60:5.1

#將bb列按照數字從小到大順序排列:

[root@mail text]# sort -nk 2 -t: sort.txt

aaa:bb:cc

bbb:10:2.5

ddd:20:4.2

aaa:30:1.6

eee:40:5.4

ccc:50:3.3

eee:60:5.1

寫成乙個指令:

for i in `cat c.log |grep 'createtoken'|grep 'data' |awk -f"input:" ''|sort |uniq`; do count=`cat  c.log |grep $i |wc -l`; echo "custno:"$i"累計成功請求 "$count" 次"; done| sort -nk2 -t" "

參考:

介面呼叫次數統計php PHP設計模式 觀察者模式

使用場景 假設專案經理讓我們寫了乙個登陸介面,咔咔擦擦寫完了 我們需要讓專案保持高內聚低耦合,就可以用到觀察者模式 也不是非要,看需求 概念觀察者,觀察者,首先要有個被人觀察的角色,這是唯一的,然後會有無數個觀察者去看她,可以說是一群人在圍觀乙個人,既然有無數個觀眾,那總得有個東西記錄有哪些觀察者,...

限制介面的訪問次數

情景 傳送手機驗證碼或者郵箱驗證碼時限制規則 一分鐘只可以發一次,一天內也有次數限制。以防止惡意訪問,降低伺服器壓力。解決思路 獲取使用者ip位址,判斷此ip是否首次訪問,如果是首次訪問,在redis建立minkey,daykey.並設定minkey過期60s,daykey為86400s,也就是24...

dubbo介面的呼叫

dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,並且本質上是個服務呼叫的東東,說白了就是個遠端服務呼叫的...