API 監(jiān)控適合業(yè)務(wù)在互聯(lián)網(wǎng)上粥喜,并且用戶來自多個(gè)不同的地區(qū),且對API的要求較高的場合,用于解決以下的問題:
- 發(fā)現(xiàn)由于網(wǎng)絡(luò)中斷或者是API響應(yīng)異常等導(dǎo)致的服務(wù)不可用;
- 及時(shí)對異常的API進(jìn)行告警;
- 記錄監(jiān)控的日志肠虽,方便排查幔戏。
Eolink Apikit 除了提供 API 的管理和自動(dòng)化測試等功能,還提供 API 監(jiān)控服務(wù)税课,可以為 API 設(shè)置定時(shí)撥測闲延,并且支持多節(jié)點(diǎn)監(jiān)控,可以從多個(gè)不同的地區(qū)節(jié)點(diǎn)來模擬用戶的請求進(jìn)行監(jiān)控韩玩。
1垒玲、創(chuàng)建流程監(jiān)控
API 流程監(jiān)控可以同時(shí)對多個(gè) API 進(jìn)行監(jiān)控,你可以設(shè)置多個(gè) API 的監(jiān)控順序找颓,數(shù)據(jù)關(guān)聯(lián)等信息合愈,滿足對重點(diǎn)業(yè)務(wù)場景、操作流程的監(jiān)控击狮。
進(jìn)入場景監(jiān)控設(shè)置頁面佛析,點(diǎn)擊 添加流程
按鈕,進(jìn)入流程編輯頁面彪蓬。
在流程編輯頁面中設(shè)置流程的名稱寸莫、監(jiān)控環(huán)境、監(jiān)控頻率档冬、監(jiān)控節(jié)點(diǎn)等信息膘茎。
2、為流程添加 API
1. 添加 API
進(jìn)入流程編輯頁后酷誓,點(diǎn)擊添加 監(jiān)控步驟
按鈕披坏,在下拉菜單中可以選擇從 Eolinker API Management(API 管理產(chǎn)品)中導(dǎo)入 API 信息,或者手動(dòng)創(chuàng)建監(jiān)控 API盐数。
2. 設(shè)置 API 監(jiān)控信息
點(diǎn)擊 新建空白API步驟
的按鈕刮萌,進(jìn)入 API 的編輯頁后,你可以設(shè)置 API 的基本信息娘扩、請求信息着茸、校驗(yàn)規(guī)則等內(nèi)容。
API監(jiān)控的基礎(chǔ)信息包括:
- API請求地址
- API分組琐旁、名稱
- 超時(shí)限制:當(dāng)API的響應(yīng)時(shí)間超出設(shè)定的限制時(shí)間時(shí)涮阔,系統(tǒng)將會(huì)自動(dòng)中斷該次監(jiān)控請求,并且報(bào)請求超時(shí)異常灰殴。
3. 請求頭部
你可以輸入或?qū)胝埱箢^部敬特。批量導(dǎo)入的數(shù)據(jù)格式為 key : value
掰邢,一行一條 header
信息,如:
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Mon, 30 Dec 2019 20:49:45 GMT
4. 請求體
請求體支持以下類型:Form-data(表單)伟阔、JSON辣之、XML、Raw(自定義文本類型數(shù)據(jù))皱炉。
5. Query 參數(shù)
Query參數(shù)指的是地址欄中跟在問號 ?
后面的參數(shù)怀估,如以下地址中的 user_name
參數(shù):
shop/query?shop_id=001
批量導(dǎo)入的數(shù)據(jù)格式為 ?key=value
,通過 &
分隔多個(gè)參數(shù)合搅,如:
api.eolinker.com/user/login?user_name=jackliu&user_password=hello
6. REST 參數(shù)
REST參數(shù)指的是地址欄被斜杠 /
分隔的參數(shù)多搀,如以下地址中的 user_name
、user_password
參數(shù)灾部。
/user/login/{user_name}/{user_password}
注意:只需要在URL中使用 {}
將REST參數(shù)括起來康铭,下方的請求參數(shù)名中不需要使用 {}
。
7. 權(quán)限校驗(yàn)
如果訪問API時(shí)需要先進(jìn)行身份驗(yàn)證赌髓,可以在權(quán)限校驗(yàn)處填寫校驗(yàn)的信息从藤。
3、設(shè)置 API 之間的數(shù)據(jù)關(guān)系
同一個(gè)流程里的不同 API 之間可以進(jìn)行數(shù)據(jù)關(guān)聯(lián)锁蠕。比如一個(gè)監(jiān)控流程里有兩個(gè) API:
- 門店創(chuàng)建(
/shop/create
):創(chuàng)建門店后呛哟,會(huì)得到返回參數(shù)shop_id
。 - 門店查詢(
/shop/query
):根據(jù)shop_id
來查詢具體的門店匿沛。
我們先設(shè)置門店創(chuàng)建API的請求參數(shù)和預(yù)設(shè)返回結(jié)果扫责。進(jìn)入用戶登錄API的編輯頁面:
然后我們設(shè)置門店查詢API。門店查詢API只有一個(gè)請求參數(shù) shop_id
逃呼,shop_id
的參數(shù)值通過門店創(chuàng)建API的返回結(jié)果獲得鳖孤。進(jìn)入門店查詢API的編輯頁面,設(shè)置門店查詢API的請求參數(shù)抡笼,點(diǎn)擊參數(shù)值的輸入框時(shí)苏揣,上方會(huì)出現(xiàn)兩個(gè)按鈕,點(diǎn)擊 引用參數(shù)值
按鈕:
在彈窗中選擇要綁定的API以及返回參數(shù)名稱:
點(diǎn)擊 確認(rèn)
按鈕即可將用戶創(chuàng)建API的返回結(jié)果綁定到門店查詢API的請求參數(shù)中推姻。
在執(zhí)行流程監(jiān)控的時(shí)候平匈,系統(tǒng)會(huì)自動(dòng)將門店創(chuàng)建API的 shop_id
的返回參數(shù)動(dòng)態(tài)綁定到門店查詢API的請求參數(shù)中:
4、改變流程的 API 順序
拖動(dòng) API 列表可以改變 API 的執(zhí)行順序藏古。但是如果 API 之間存在數(shù)據(jù)關(guān)聯(lián)增炭,則拖動(dòng)步驟有可能會(huì)破壞 API 之間的數(shù)據(jù)關(guān)聯(lián),導(dǎo)致無法正常獲得綁定的參數(shù)值拧晕。
5隙姿、開啟流程監(jiān)控
流程創(chuàng)建好之后,可以在流程頁面的上方點(diǎn)擊 開啟監(jiān)控
按鈕厂捞,來開啟流程的監(jiān)控:
也可以在流程列表输玷,操作欄出點(diǎn)擊 更多
按鈕队丝,在下拉菜單選擇 開啟監(jiān)控
:
還可以通過流程列表頂部的 批量操作
按鈕,來開啟監(jiān)控:
生產(chǎn)環(huán)境可能存在同時(shí)運(yùn)行多個(gè)版本的代碼欲鹏,并且每個(gè)版本的代碼都有可能獨(dú)立迭代机久,最終分化出不同的版本。如果我們需要對歷史版本的API進(jìn)行自動(dòng)化測試赔嚎,或者通過監(jiān)控來驗(yàn)證線上的穩(wěn)定性膘盖,那么我們可以給每一個(gè)版本的API創(chuàng)建一個(gè)項(xiàng)目。因?yàn)樵?Eolink Apikit 中尽狠,我們可以為每一個(gè)項(xiàng)目設(shè)置監(jiān)控,并且可以獨(dú)立運(yùn)行測試用例叶圃,滿足復(fù)雜的API治理的需求袄膏。