1.事件定義
如圖所示,進入PUMA的管理后台,進行事件添加:
(1).事件名稱:事件的名稱 ,例如 :登錄事件
(2)描述:日志生成的主要依據(具體參考:2 事件描述定義規則)
(3)應用:綁定對應的產品,例如:統一后台管理
(4)接口:事件關聯的接口 例如:/pack/login/usernameLogin (會去收集這個接口的訪問)
<注>.一個接口最好只與一個事件綁定,一個事件可以綁定多個接口,但推薦只綁定一個接口
2.事件描述定義規則
例:
用戶登錄事件: 賬號:${REQ_P:username} 密碼:${REQ_G:password} 請求頭:${HEAD:~} 響應:${RESP:~} token:${RESP:data->accessToken} 訪問用戶:${TOKEN:~}
定義一個事件描述,格式化的目標為${}中的內容,所以必須嚴格按照${}的格式,如果格式錯誤,那么將不會獲取到正確的格式化內容。
符號解釋:
$: 格式化起始符
{}:格式化包括符
: : key-value分隔符
-> : 獲取子元素
枚舉解釋:目前支持的參數來源,REQ_G,REQ_P,RESP,HEAD,TOKEN
HEAD: 請求頭
REQ_G: GET請求
REQ_P:POST請求
RESP:參數返回
TOKEN:token信息
參數解釋:
REQ_G:password 從GET請求參數中獲取password參數
REQ_P:username 從POST請求參數中獲取username參數
HEAD:~ 從HEAD中獲取所有參數
RESP:~ 從響應中獲取所有參數
RESP:data->accessToken 從響應中獲取data中的accessToken
TOKEN:~ 從請求頭中獲取token信息並轉換為username
<注意>,TOKEN 盡量跟~ ,因為跟其它的也沒用。
開啟默認攔截器
<注>:如果需要自定義事件攔截規則,可以繼承TagFilter 並重寫
protected abstract byte[] handle(CustomHttpServletResponseWrapper customHttpServletResponseWrapper, CustomHttpServletRequestWrapper customHttpServletRequestWrapper, HttpServletResponse response);
即可。
Skywalking 圖解