ARMS企业级场景被集成场景介绍
通過本次最佳實(shí)踐內(nèi)容,您可以看到ARMS OpenAPI可以靈活的被集成到客戶鏈路監(jiān)控場(chǎng)景,并對(duì)其進(jìn)行可視化圖形展示監(jiān)控信息。
1. 背景信息
應(yīng)用實(shí)時(shí)監(jiān)控服務(wù)ARMS(Application Real-Time Monitoring Service)是一款應(yīng)用性能管理產(chǎn)品,能幫助你實(shí)現(xiàn)全棧式的性能監(jiān)控和端到端的全鏈路追蹤診斷,讓應(yīng)用運(yùn)維更加高效。
本次最佳實(shí)踐是基于調(diào)用ARMS OpenAPI的形式來實(shí)現(xiàn)客戶應(yīng)用場(chǎng)景鏈路監(jiān)控的可視化圖形展示,使用環(huán)境為專有云V3.10版本ASCM控制臺(tái),調(diào)用ARMS OpenAPI接口通過工具Postman進(jìn)行測(cè)試,在第二章節(jié)詳細(xì)介紹了測(cè)試環(huán)境及測(cè)試工具。第三章節(jié)通過一個(gè)查詢所有應(yīng)用ARMS OpenAPI接口描述調(diào)用過程,并且包含該接口需要請(qǐng)求傳入的參數(shù)接口列表。最后一章節(jié)將對(duì)一個(gè)復(fù)雜應(yīng)用場(chǎng)景,獲取鏈路監(jiān)控信息使用到ARMSOpenAPI接口,對(duì)每個(gè)接口列表字段、調(diào)用過程及返回結(jié)果詳細(xì)介紹。
最佳實(shí)踐價(jià)值
通過調(diào)用ARMS OpenAPI在應(yīng)用場(chǎng)景的使用,直觀給閱讀者了解到ARMS產(chǎn)品的能力,及ARMS提供一套OpenAPI可以容易的集成到客戶應(yīng)用中,快速實(shí)現(xiàn)復(fù)雜的微服務(wù)鏈路監(jiān)控能力,由ARMS監(jiān)控服務(wù)能力涵蓋范圍能力比較廣,包含瀏覽器、小程序、APP、分布式應(yīng)用和容器環(huán)境,因此完整的監(jiān)控能力,開發(fā)過程中不需要集成多開源組件的形式,使微服務(wù)程序監(jiān)控功能開發(fā)簡(jiǎn)單,讓應(yīng)用運(yùn)維變得容易。
2. 環(huán)境
在使用ARMS前您需要按照以下內(nèi)容對(duì)當(dāng)前的系統(tǒng)環(huán)境進(jìn)行檢查。
本次最佳實(shí)踐基于專有云企業(yè)版V3.10.0版本ARMS。
說明:ARMS OpenAPI各個(gè)版本變化不大,使用方式保持一致,所以此文檔也適用于公共云產(chǎn)品或?qū)S性芕3.7.0以上版本。專有云V3.10.0控制臺(tái)稱為ASCM,V3.10.0之前版本為Apsara Stack。
1.登錄ASCM控制臺(tái)。
2.將鼠標(biāo)指向頁面上方導(dǎo)航欄中的產(chǎn)品,單擊企業(yè)級(jí)分布式應(yīng)用服務(wù)EDAS。
圖1:ASCM
說明:由于ARMS監(jiān)控應(yīng)用數(shù)據(jù),需要EDAS產(chǎn)品配合。本次測(cè)試先通過EDAS部署一個(gè)標(biāo)準(zhǔn)的Spring Boot應(yīng)用,開通ARMS監(jiān)控并得到監(jiān)控?cái)?shù)據(jù)。
圖 2:EDAS控制臺(tái)
圖 3:ARMS控制臺(tái)
3.測(cè)試工具檢查。
本實(shí)踐將會(huì)在專有云環(huán)境中創(chuàng)建win64虛擬機(jī),然后在虛擬機(jī)中安裝Postman進(jìn)行測(cè)試。
圖4:Postman測(cè)試
3. Open API使用
調(diào)用URL確認(rèn)
OpenAPI接口均為REST服務(wù),首先確認(rèn)服務(wù)的URL。
每個(gè)專有云環(huán)境域名不同,會(huì)導(dǎo)致URL不同。請(qǐng)根據(jù)具體環(huán)境信息修改URL信息,前綴及端口不變。
http://arms.console.example.com:8099/
| 名稱 | 接口 |
| 數(shù)據(jù)集API | /dataset/GeneralQuery.json |
| 關(guān)鍵應(yīng)用性能指標(biāo) | /metric/Metric.json |
| 報(bào)警信息 | 無 |
| 應(yīng)用監(jiān)控-應(yīng)用拓?fù)?/td> | /trace/Dependecies.json |
| 事件集 | /eventset/EventList.json |
調(diào)用示例-查看所有應(yīng)用:
API說明
URL:http://arms.console.example.com:8099/trace/Services.json
參數(shù)列表
| 字段名稱 | 字段類型 | 字段含義 | 是否必選 | 備注 |
| _userId | String | 用戶id | 是 | 用戶名稱(如arms_admin) |
返回格式示例
{ "code": 200, "data": { "details": [ { "pid": "string", //應(yīng)用對(duì)應(yīng)的pid "regionId": "string", "serviceName": "string" //應(yīng)用名稱 } ], "services":[ //應(yīng)用名稱列表 "string", "string" ] }, "success": true }Postman調(diào)用結(jié)果
參數(shù)設(shè)置:_userId= 121827433423****
圖5:Postman調(diào)用結(jié)果
4. 應(yīng)用描述
從ARMS中取得應(yīng)用拓?fù)鋽?shù)據(jù)、曲線圖、應(yīng)用監(jiān)控指標(biāo)數(shù)據(jù),將通過大屏DataV展示。
圖6:DataV展示
5. 查詢接口調(diào)用次數(shù)
通過/metric/Metric.json接口獲得應(yīng)用相關(guān)性能數(shù)據(jù),查詢接口調(diào)用次數(shù)。
API說明
- URL :http://arms.console.example.com:8099/metric/Metric.json
- 接口說明:
| 字段名稱 | 字段類型 | 字段含義 | 是否必選 | 備注 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 無 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 無 |
| intervalInSec | Integer | 時(shí)間間隔 | 否 | 建議填寫 |
| metric | String | metric字段 | 是 | 詳細(xì)填寫參考參數(shù)填寫示范 |
| filters | List[String] | 過濾字段 | 是 | 詳細(xì)填寫參考參數(shù)填寫示范 |
| measures | List[String] | 指標(biāo) | 是 | 詳細(xì)填寫參考參數(shù)填寫示范 |
| dimensions | List[String] | 維度 | 是 | 詳細(xì)填寫參考參數(shù)填寫示范 |
| orderBy | String | 排序字段 | 否 | 無 |
| sortOrder | String | 排序 | 否 | 默認(rèn)不排序(ASC或者DESC) |
| limit | Integer | 返回條數(shù) | 否 | 無 |
| _userId | String | 用戶id | 是 | 用戶名稱(如arms_admin) |
調(diào)用示例
查詢指定應(yīng)用過往7天的接口調(diào)用次數(shù)
參數(shù)填寫示范:
| 字段名稱 | 字段類型 | 字段含義 | 必選 | 示例值 | 值來源 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 1578199319898 | 系統(tǒng)時(shí)間 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 1578804119898 | 系統(tǒng)時(shí)間 |
| intervalInSec | Integer | 時(shí)間間隔 | 否 | 默認(rèn)3600秒,即1小時(shí) | 人工設(shè)置 |
| metric | String | metric字段,查詢的指標(biāo) | 是 | APPSTAT.DETAIL | 人工設(shè)置 |
| filters | List[String] | 過濾字段,嚴(yán)格按照格式,否則調(diào)用出錯(cuò) | 是 | [{key=pid,value=1218274334230390@db61f75c2f******},{key=regionId,value=cn-******-d01}] | Pid、regionid來自于專有云環(huán)境 |
| measures | List[String] | 指標(biāo) | 是 | [rt,count,error,errrate] | API文檔 |
| dimensions | List[String] | 維度 | 是 | [pid,rpcType,rootIp] | API文檔 |
| orderBy | String | 排序字段 | 否 | 無 | 無 |
| sortOrder | String | 排序 | 否 | 默認(rèn)不排序(ASC或者DESC) | 無 |
| limit | Integer | 返回條數(shù) | 否 | 無 | 無 |
| _userId | String | 用戶id | 是 | 121827433423**** | 無 |
查詢結(jié)果
參數(shù)設(shè)置:
圖7:參數(shù)設(shè)置
結(jié)果說明:
- 返回結(jié)果為JSON數(shù)據(jù)集。
- 數(shù)據(jù)集會(huì)標(biāo)示查詢狀態(tài),成功返回200,如果失敗會(huì)返回相應(yīng)的錯(cuò)誤碼和錯(cuò)誤原因。典型錯(cuò)誤例如缺少必要參數(shù)、身份認(rèn)證錯(cuò)誤等(是因?yàn)閒ilters參數(shù)沒按格式要求寫好)。
- OpenAPI返回的結(jié)果集組織形式與查詢數(shù)據(jù)的開始時(shí)間、結(jié)束時(shí)間、數(shù)據(jù)間隔時(shí)間有關(guān)。本次查詢是查詢了過往7天,數(shù)據(jù)間隔時(shí)間設(shè)置成了24小時(shí),所以這個(gè)結(jié)果集里返回了7個(gè)”data”的集合。
- 每個(gè)data里包括在“measure”和”dimension”里指定的查詢,以本結(jié)果集為例,就包括:Count:0.0
PID:
rpcDesc: HTTP入口
rpcType:0(HTTP調(diào)用) - 調(diào)整查詢的開始、結(jié)束、間隔時(shí)間,會(huì)影響data數(shù)據(jù)的條數(shù),調(diào)整接口查詢參數(shù)會(huì)影響每條data里的數(shù)據(jù)。
- 如果需要計(jì)算一些聚合值,比如過往7天總的HTTP調(diào)用次數(shù),需要自行把多條data數(shù)據(jù)進(jìn)行計(jì)算相加后得出結(jié)果。
6. 查詢異常數(shù)量
通過/metric/Metric.json 接口獲得應(yīng)用相關(guān)性能數(shù)據(jù),查詢異常數(shù)量。
API說明
- URL :http://arms.console.example.com:8099/metric/Metric.json
- 接口說明:
| 字段名稱 | 字段類型 | 字段含義 | 是否必選 | 備注 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 無 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 無 |
| intervalInSec | Integer | 時(shí)間間隔 | 否 | 建議填寫 |
| metric | String | metric字段 | 是 | 詳細(xì)填寫參考下文 |
| filters | List[String] | 過濾字段 | 是 | 詳細(xì)填寫參考下文 |
| measures | List[String] | 指標(biāo) | 是 | 詳細(xì)填寫參考下文 |
| dimensions | List[String] | 維度 | 是 | 詳細(xì)填寫參考下文 |
| orderBy | String | 排序字段 | 否 | 無 |
| sortOrder | String | 排序 | 否 | 默認(rèn)不排序(ASC或者DESC) |
| limit | Integer | 返回條數(shù) | 否 | 無 |
| _userId | String | 用戶id | 是 | 用戶名稱(如arms_admin) |
調(diào)用示例
查詢指定應(yīng)用過往7天的接口調(diào)用次數(shù)。
參數(shù)填寫示范:
| 字段名稱 | 字段類型 | 字段含義 | 必選 | 示例值 | 值來源 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 1577980826988 | 系統(tǒng)時(shí)間 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 1578585626989 | 系統(tǒng)時(shí)間 |
| intervalInSec | Integer | 時(shí)間間隔 | 否 | 默認(rèn)3600秒,即1小時(shí) | 人工設(shè)置 |
| metric | String | metric字段,查詢的指標(biāo) | 是 | APPSTAT.EXCEPTION | 人工設(shè)置 |
| filters | List[String] | 過濾字段,嚴(yán)格按照格式,否則調(diào)用出錯(cuò)。 | 是 | [{key=pid,value=1218274334230390@db61f75c2f******},{key=regionId,value=cn-******-d01}] | Pid、regionid來自于專有云環(huán)境 |
| measures | List[String] | 指標(biāo) | 是 | [count] | API 文檔 |
| dimensions | List[String] | 維度 | 是 | [pid,rpc,endpoint,exceptionInfo] | API文檔 |
| orderBy | String | 排序字段 | 否 | 無 | 無 |
| sortOrder | String | 排序 | 否 | 默認(rèn)不排序(ASC或者DESC) | 無 |
| limit | Integer | 返回條數(shù) | 否 | 無 | 無 |
| _userId | String | 用戶id | 是 | 1218274334230390 | 無 |
查詢結(jié)果
參數(shù)設(shè)置:
圖8:參數(shù)設(shè)置
查詢結(jié)果:
圖9:查詢結(jié)果
結(jié)果說明:
- 返回結(jié)果為JSON數(shù)據(jù)集。
- 數(shù)據(jù)集會(huì)標(biāo)示查詢狀態(tài),成功返回200,如果失敗會(huì)返回相應(yīng)的錯(cuò)誤碼和錯(cuò)誤原因。典型錯(cuò)誤例如缺少必要參數(shù)、身份認(rèn)證錯(cuò)誤等(是因?yàn)閒ilters參數(shù)沒按格式要求寫好)。
- 本次查詢未查到相關(guān)數(shù)據(jù),所以exception數(shù)量為0。
7. 查詢當(dāng)前應(yīng)用實(shí)例數(shù)量
通過/metric/Metric.json接口獲得應(yīng)用相關(guān)性能數(shù)據(jù),查詢當(dāng)前應(yīng)用實(shí)例數(shù)量。
API說明
- URL :http://arms.console.example.com:8099/metric/Metric.json
- 接口說明:
| 字段名稱 | 字段類型 | 字段含義 | 是否必選 | 備注 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 無 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 無 |
| intervalInSec | Integer | 時(shí)間間隔 | 否 | 建議填寫 |
| metric | String | metric字段 | 是 | 詳細(xì)填寫參考下文 |
| filters | List[String] | 過濾字段 | 是 | 詳細(xì)填寫參考下文 |
| measures | List[String] | 指標(biāo) | 是 | 詳細(xì)填寫參考下文 |
| dimensions | List[String] | 維度 | 是 | 詳細(xì)填寫參考下文 |
| orderBy | String | 排序字段 | 否 | 無 |
| sortOrder | String | 排序 | 否 | 默認(rèn)不排序(ASC或者DESC) |
| limit | Integer | 返回條數(shù) | 否 | 無 |
| _userId | String | 用戶id | 是 | 用戶名稱(如arms_admin) |
調(diào)用示例
查詢指定應(yīng)用過往7天的接口調(diào)用次數(shù)。
參數(shù)填寫示范:
| 字段名稱 | 字段類型 | 字段含義 | 必選 | 示例值 | 值來源 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 1577980826988 | 系統(tǒng)時(shí)間 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 1578585626989 | 系統(tǒng)時(shí)間 |
| intervalInSec | Integer | 時(shí)間間隔 | 否 | 默認(rèn)3600秒,即1小時(shí) | 人工設(shè)置 |
| metric | String | metric字段,查詢的指標(biāo) | 是 | APPSTAT.DETAIL | 人工設(shè)置 |
| filters | List[String] | 過濾字段,嚴(yán)格按照格式,否則調(diào)用出錯(cuò)。 | 是 | [{key=pid,value=1218274334230390@db61f75c2f28609},{key=regionId,value=******}] | Pid、regionid來自于專有云環(huán)境 |
| measures | List[String] | 指標(biāo) | 是 | [count] | API 文檔 |
| dimensions | List[String] | 維度 | 是 | [pid,rootIp] | API文檔 |
| orderBy | String | 排序字段 | 否 | 無 | 無 |
| sortOrder | String | 排序 | 否 | 默認(rèn)不排序(ASC或者DESC) | 無 |
| limit | Integer | 返回條數(shù) | 否 | 無 | 無 |
| _userId | String | 用戶id | 是 | 12182743342****** | 無 |
查詢結(jié)果
參數(shù)設(shè)置:
圖10:參數(shù)設(shè)置
查詢結(jié)果:
圖11:查詢結(jié)果
結(jié)果說明:
- 返回結(jié)果為JSON數(shù)據(jù)集。
- 數(shù)據(jù)集會(huì)標(biāo)示查詢狀態(tài),成功返回200,如果失敗會(huì)返回相應(yīng)的錯(cuò)誤碼和錯(cuò)誤原因。典型錯(cuò)誤例如缺少必要參數(shù)、身份認(rèn)證錯(cuò)誤等(是因?yàn)閒ilters參數(shù)沒按格式要求寫好)。
- Openapi返回的結(jié)果集組織形式與查詢數(shù)據(jù)的開始時(shí)間、結(jié)束時(shí)間、數(shù)據(jù)間隔時(shí)間有關(guān)。本次查詢是查詢了過往7天,數(shù)據(jù)間隔時(shí)間設(shè)置成了24小時(shí),所以這個(gè)結(jié)果集里返回了7個(gè)”data”的集合。
- 每個(gè)data里包括在measure和dimension里指定的查詢,以本結(jié)果集為例,就包括:Count:0.0
RootIP - 本次查詢需求是要看此應(yīng)用一共部署了多少實(shí)例,所以對(duì)結(jié)果中不同IP進(jìn)行計(jì)算,即可以算出共有多少實(shí)例數(shù)量。另外一個(gè)方法是設(shè)置intervalInSec的值,讓它等查詢區(qū)間,這樣出來的data集合的條數(shù)就是實(shí)例數(shù)量值,因?yàn)槊總€(gè)IP都會(huì)有條數(shù)據(jù)。
8. 查詢當(dāng)前應(yīng)用拓?fù)鋱D
通過/trace/Dependecies.json接口獲得應(yīng)用拓?fù)湎嚓P(guān)數(shù)據(jù)。
API說明
- URL :http://arms.console.example.com:8099/trace/Dependecies.json
- 接口說明:
| 字段名稱 | 字段類型 | 字段含義 | 是否必選 | 備注 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 無 |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 無 |
| _userId | String | 用戶id | 是 | 用戶名稱(如arms_admin) |
| type | String | 查詢類型 | 是 | 查詢?nèi)筷P(guān)系使用ALL;單個(gè)應(yīng)用的關(guān)系使用APP |
| pid | String | 應(yīng)用對(duì)應(yīng)的pid | 否 | 當(dāng)type=APP時(shí)必須填寫 |
調(diào)用示例
查詢指定應(yīng)用過往7天的接口調(diào)用次數(shù)。
參數(shù)填寫示范:
本測(cè)試1月12日進(jìn)行,查詢過去7天的數(shù)據(jù)。
| 字段名稱 | 字段類型 | 字段含義 | 必選 | 示例值 |
| startTime | Long | 查詢數(shù)據(jù)的起始時(shí)間 | 是 | 1578199319898 (1月5日) |
| endTime | Long | 查詢數(shù)據(jù)的截止時(shí)間 | 是 | 1578804119898 (1月12日) |
| _userId | String | 用戶id | 是 | 1218274334****** |
| type | String | 查詢類型 | 是 | APP |
| pid | String | 應(yīng)用對(duì)應(yīng)的pid | 否 | 1218274334230390@db61f75c****** |
查詢結(jié)果
參數(shù)設(shè)置:
圖12:參數(shù)設(shè)置
查詢結(jié)果:
{ "code": 200, "data": { "link": [{ "code": 200, "data": { "link": [ { "callCount": 26997.0, "child": "Demo-Service", "childNodeId": 731107445, "childPid": "1218274334230390@db61f75c2******", "elapsed": 16.2328, "errorCount": 16.0, "parent": "USER", "parentNodeId": 812148234, "parentPid": "1218274334230390@db61f75c2******", "protocol": "HTTP" }, { "callCount": 8.0, "child": "pdsa_lhh_rocketmq", "childNodeId": -1762019072, "childPid": "pdsa_lhh_rocketmq", "elapsed": 11190.5, "errorCount": 8.0, "parent": "Demo-Service", "parentNodeId": 731107445, "parentPid": "1218274334230390@db61f75c2******", "protocol": "AliWareMQ" } ], "nodes": [ { "elapsed": 0.0, "errorCount": 0.0, "id": 812148234, "name": "USER", "pid": "1218274334230390@db61f75c2******", "requestCount": 0.0, "type": "USER" }, { "elapsed": 0.0, "errorCount": 0.0, "id": 731107445, "name": "Demo-Service", "pid": "1218274334230390@db61f75c2******", "requestCount": 0.0, "type": "MQ_PRODUCER" }, { "elapsed": 0.0, "errorCount": 0.0, "id": -1762019072, "name": "pdsa_****_rocketmq", "pid": "pdsa_****_rocketmq", "requestCount": 0.0, "type": "METAQ" } ] }, "success": true }實(shí)際拓?fù)鋱D效果如下:
圖13:拓?fù)鋱D
結(jié)果說明:
- 返回結(jié)果為JSON數(shù)據(jù)集。
- 數(shù)據(jù)集會(huì)標(biāo)示查詢狀態(tài),成功返回200,如果失敗會(huì)返回相應(yīng)的錯(cuò)誤碼和錯(cuò)誤原因。典型錯(cuò)誤例如缺少必要參數(shù)、身份認(rèn)證錯(cuò)誤等(是因?yàn)閒ilters參數(shù)沒按格式要求寫好)。
- 查詢結(jié)果是一個(gè)點(diǎn)線圖的節(jié)點(diǎn)數(shù)據(jù)和連接數(shù)據(jù),需要使用者自行按照?qǐng)D表控件組裝相應(yīng)數(shù)據(jù)。
我們是阿里云智能全球技術(shù)服務(wù)-SRE團(tuán)隊(duì),我們致力成為一個(gè)以技術(shù)為基礎(chǔ)、面向服務(wù)、保障業(yè)務(wù)系統(tǒng)高可用的工程師團(tuán)隊(duì);提供專業(yè)、體系化的SRE服務(wù),幫助廣大客戶更好地使用云、基于云構(gòu)建更加穩(wěn)定可靠的業(yè)務(wù)系統(tǒng),提升業(yè)務(wù)穩(wěn)定性。我們期望能夠分享更多幫助企業(yè)客戶上云、用好云,讓客戶云上業(yè)務(wù)運(yùn)行更加穩(wěn)定可靠的技術(shù),您可用釘釘掃描下方二維碼,加入阿里云SRE技術(shù)學(xué)院釘釘圈子,和更多云上人交流關(guān)于云平臺(tái)的那些事。
原文鏈接:https://developer.aliyun.com/article/785342?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的ARMS企业级场景被集成场景介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈云原生架构的 7 个原则
- 下一篇: CNCF TOC 委员张磊:不断演进的云