当前位置:主页 > 查看内容

ARMS企业级场景被集成场景介绍

发布时间:2021-07-16 00:00| 位朋友查看

简介:通过本次最佳实践内容 您可以看到ARMS OpenAPI可以灵活的被集成到客户链路监控场景 并对其进行可视化图形展示监控信息。 1. 背景信息 应用实时监控服务ARMS Application Real-Time Monitoring Service 是一款应用性能管理产品 能帮助你实现全栈式的性能监控……

56f5ded39bcc4efc94ff1398a9db9782.png

通过本次最佳实践内容 您可以看到ARMS OpenAPI可以灵活的被集成到客户链路监控场景 并对其进行可视化图形展示监控信息。

1. 背景信息

应用实时监控服务ARMS Application Real-Time Monitoring Service 是一款应用性能管理产品 能帮助你实现全栈式的性能监控和端到端的全链路追踪诊断 让应用运维更加高效。

本次最佳实践是基于调用ARMS OpenAPI的形式来实现客户应用场景链路监控的可视化图形展示 使用环境为专有云V3.10版本ASCM控制台 调用ARMS OpenAPI接口通过工具Postman进行测试 在第二章节详细介绍了测试环境及测试工具。第三章节通过一个查询所有应用ARMS OpenAPI接口描述调用过程 并且包含该接口需要请求传入的参数接口列表。最后一章节将对一个复杂应用场景 获取链路监控信息使用到ARMSOpenAPI接口 对每个接口列表字段、调用过程及返回结果详细介绍。

最佳实践价值

通过调用ARMS OpenAPI在应用场景的使用 直观给阅读者了解到ARMS产品的能力 及ARMS提供一套OpenAPI可以容易的集成到客户应用中 快速实现复杂的微服务链路监控能力 由ARMS监控服务能力涵盖范围能力比较广 包含浏览器、小程序、APP、分布式应用和容器环境 因此完整的监控能力 开发过程中不需要集成多开源组件的形式 使微服务程序监控功能开发简单 让应用运维变得容易。

2. 环境

在使用ARMS前您需要按照以下内容对当前的系统环境进行检查。

本次最佳实践基于专有云企业版V3.10.0版本ARMS。

说明 ARMS OpenAPI各个版本变化不大 使用方式保持一致 所以此文档也适用于公共云产品或专有云V3.7.0以上版本。专有云V3.10.0控制台称为ASCM V3.10.0之前版本为Apsara Stack。

1.登录ASCM控制台。

2.将鼠标指向页面上方导航栏中的产品 单击企业级分布式应用服务EDAS。

1.jpg

图1 ASCM

说明 由于ARMS监控应用数据 需要EDAS产品配合。本次测试先通过EDAS部署一个标准的Spring Boot应用 开通ARMS监控并得到监控数据。

2.jpg

图 2 EDAS控制台

3.jpg

图 3 ARMS控制台

3.测试工具检查。

本实践将会在专有云环境中创建win64虚拟机 然后在虚拟机中安装Postman进行测试。

4.jpg

图4 Postman测试

3. Open API使用调用URL确认

OpenAPI接口均为REST服务 首先确认服务的URL。
每个专有云环境域名不同 会导致URL不同。请根据具体环境信息修改URL信息 前缀及端口不变。
http://arms.console.example.com:8099/

名称接口数据集API/dataset/GeneralQuery.json关键应用性能指标/metric/Metric.json报警信息无应用监控-应用拓扑/trace/Dependecies.json事件集/eventset/EventList.json

调用示例-查看所有应用

API说明

URL http://arms.console.example.com:8099/trace/Services.json

参数列表

字段名称字段类型字段含义是否必选备注_userIdString用户id是用户名称(如arms_admin)返回格式示例
{
 code : 200,
 data : {
 details : [
 pid : string , //应用对应的pid
 regionId : string , 
 serviceName : string //应用名称
 services :[ //应用名称列表
 string ,
 string 
 success : true
}

Postman调用结果

参数设置 _userId 121827433423****

5.jpg

图5 Postman调用结果

4. 应用描述

从ARMS中取得应用拓扑数据、曲线图、应用监控指标数据 将通过大屏DataV展示。

6.jpg

图6 DataV展示

5. 查询接口调用次数

通过/metric/Metric.json接口获得应用相关性能数据 查询接口调用次数。

API说明URL http://arms.console.example.com:8099/metric/Metric.json
接口说明 字段名称字段类型字段含义是否必选备注startTimeLong查询数据的起始时间是无endTimeLong查询数据的截止时间是无intervalInSecInteger时间间隔否建议填写metricStringmetric字段是详细填写参考参数填写示范filtersList[String]过滤字段是详细填写参考参数填写示范measuresList[String]指标是详细填写参考参数填写示范dimensionsList[String]维度是详细填写参考参数填写示范orderByString排序字段否无sortOrderString排序否默认不排序(ASC或者DESC)limitInteger返回条数否无_userIdString用户id是用户名称(如arms_admin)调用示例

查询指定应用过往7天的接口调用次数

参数填写示范

字段名称字段类型字段含义必选示例值值来源startTimeLong查询数据的起始时间是1578199319898系统时间endTimeLong查询数据的截止时间是1578804119898系统时间intervalInSecInteger时间间隔否默认3600秒 即1小时人工设置metricStringmetric字段 查询的指标是APPSTAT.DETAIL人工设置filtersList[String]过滤字段,严格按照格式 否则调用出错是[{key pid,value 1218274334230390 db61f75c2f******},{key regionId,value cn-******-d01}]Pid、regionid来自于专有云环境measuresList[String]指标是[rt,count,error,errrate]API文档dimensionsList[String]维度是[pid,rpcType,rootIp]API文档orderByString排序字段否无无sortOrderString排序否默认不排序(ASC或者DESC)无limitInteger返回条数否无无_userIdString用户id是121827433423****无查询结果

参数设置

7.jpg

图7 参数设置

结果说明

返回结果为JSON数据集。数据集会标示查询状态 成功返回200 如果失败会返回相应的错误码和错误原因。典型错误例如缺少必要参数、身份认证错误等 是因为filters参数没按格式要求写好 。OpenAPI返回的结果集组织形式与查询数据的开始时间、结束时间、数据间隔时间有关。本次查询是查询了过往7天 数据间隔时间设置成了24小时 所以这个结果集里返回了7个”data”的集合。每个data里包括在“measure”和”dimension”里指定的查询 以本结果集为例 就包括 Count:0.0
PID:
rpcDesc: HTTP入口
rpcType:0 HTTP调用
调整查询的开始、结束、间隔时间 会影响data数据的条数 调整接口查询参数会影响每条data里的数据。如果需要计算一些聚合值 比如过往7天总的HTTP调用次数 需要自行把多条data数据进行计算相加后得出结果。6. 查询异常数量

通过/metric/Metric.json 接口获得应用相关性能数据 查询异常数量。

API说明URL http://arms.console.example.com:8099/metric/Metric.json
接口说明 字段名称字段类型字段含义是否必选备注startTimeLong查询数据的起始时间是无endTimeLong查询数据的截止时间是无intervalInSecInteger时间间隔否建议填写metricStringmetric字段是详细填写参考下文filtersList[String]过滤字段是详细填写参考下文measuresList[String]指标是详细填写参考下文dimensionsList[String]维度是详细填写参考下文orderByString排序字段否无sortOrderString排序否默认不排序(ASC或者DESC)limitInteger返回条数否无_userIdString用户id是用户名称(如arms_admin)调用示例

查询指定应用过往7天的接口调用次数。

参数填写示范

字段名称字段类型字段含义必选示例值值来源startTimeLong查询数据的起始时间是1577980826988系统时间endTimeLong查询数据的截止时间是1578585626989系统时间intervalInSecInteger时间间隔否默认3600秒 即1小时人工设置metricStringmetric字段 查询的指标是APPSTAT.EXCEPTION人工设置filtersList[String]过滤字段,严格按照格式 否则调用出错。是[{key pid,value 1218274334230390 db61f75c2f******},{key regionId,value cn-******-d01}]Pid、regionid来自于专有云环境measuresList[String]指标是[count]API 文档dimensionsList[String]维度是[pid,rpc,endpoint,exceptionInfo]API文档orderByString排序字段否无无sortOrderString排序否默认不排序(ASC或者DESC)无limitInteger返回条数否无无_userIdString用户id是1218274334230390无查询结果

参数设置

8.jpg

图8 参数设置

查询结果

9.jpg

图9 查询结果

结果说明

返回结果为JSON数据集。数据集会标示查询状态 成功返回200 如果失败会返回相应的错误码和错误原因。典型错误例如缺少必要参数、身份认证错误等 是因为filters参数没按格式要求写好 。本次查询未查到相关数据 所以exception数量为0。7. 查询当前应用实例数量

通过/metric/Metric.json接口获得应用相关性能数据 查询当前应用实例数量。

API说明URL http://arms.console.example.com:8099/metric/Metric.json
接口说明 字段名称字段类型字段含义是否必选备注startTimeLong查询数据的起始时间是无endTimeLong查询数据的截止时间是无intervalInSecInteger时间间隔否建议填写metricStringmetric字段是详细填写参考下文filtersList[String]过滤字段是详细填写参考下文measuresList[String]指标是详细填写参考下文dimensionsList[String]维度是详细填写参考下文orderByString排序字段否无sortOrderString排序否默认不排序(ASC或者DESC)limitInteger返回条数否无_userIdString用户id是用户名称(如arms_admin)调用示例

查询指定应用过往7天的接口调用次数。

参数填写示范

字段名称字段类型字段含义必选示例值值来源startTimeLong查询数据的起始时间是1577980826988系统时间endTimeLong查询数据的截止时间是1578585626989系统时间intervalInSecInteger时间间隔否默认3600秒 即1小时人工设置metricStringmetric字段 查询的指标是APPSTAT.DETAIL人工设置filtersList[String]过滤字段,严格按照格式 否则调用出错。是[{key pid,value 1218274334230390 db61f75c2f28609},{key regionId,value ******}]Pid、regionid来自于专有云环境measuresList[String]指标是[count]API 文档dimensionsList[String]维度是[pid,rootIp]API文档orderByString排序字段否无无sortOrderString排序否默认不排序(ASC或者DESC)无limitInteger返回条数否无无_userIdString用户id是12182743342******无查询结果

参数设置

10.jpg

图10 参数设置

查询结果

11.jpg

图11 查询结果

结果说明

返回结果为JSON数据集。数据集会标示查询状态 成功返回200 如果失败会返回相应的错误码和错误原因。典型错误例如缺少必要参数、身份认证错误等 是因为filters参数没按格式要求写好 。Openapi返回的结果集组织形式与查询数据的开始时间、结束时间、数据间隔时间有关。本次查询是查询了过往7天 数据间隔时间设置成了24小时 所以这个结果集里返回了7个”data”的集合。每个data里包括在measure和dimension里指定的查询 以本结果集为例 就包括 Count:0.0
RootIP
本次查询需求是要看此应用一共部署了多少实例 所以对结果中不同IP进行计算 即可以算出共有多少实例数量。另外一个方法是设置intervalInSec的值 让它等查询区间 这样出来的data集合的条数就是实例数量值 因为每个IP都会有条数据。8. 查询当前应用拓扑图

通过/trace/Dependecies.json接口获得应用拓扑相关数据。

API说明URL http://arms.console.example.com:8099/trace/Dependecies.json
接口说明 字段名称字段类型字段含义是否必选备注startTimeLong查询数据的起始时间是无endTimeLong查询数据的截止时间是无_userIdString用户id是用户名称 如arms_admin typeString查询类型是查询全部关系使用ALL 单个应用的关系使用APPpidString应用对应的pid否当type APP时必须填写调用示例

查询指定应用过往7天的接口调用次数。

参数填写示范

本测试1月12日进行 查询过去7天的数据。

字段名称字段类型字段含义必选示例值startTimeLong查询数据的起始时间是1578199319898 1月5日 endTimeLong查询数据的截止时间是1578804119898 1月12日 _userIdString用户id是1218274334******typeString查询类型是APPpidString应用对应的pid否1218274334230390 db61f75c******查询结果

参数设置

12.jpg

图12 参数设置

查询结果

{
 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
}

实际拓扑图效果如下

13.jpg

图13 拓扑图

结果说明

返回结果为JSON数据集。数据集会标示查询状态 成功返回200 如果失败会返回相应的错误码和错误原因。典型错误例如缺少必要参数、身份认证错误等 是因为filters参数没按格式要求写好 。查询结果是一个点线图的节点数据和连接数据 需要使用者自行按照图表控件组装相应数据。


我们是阿里智能全球技术服务-SRE团队 我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队 提供专业、体系化的SRE服务 帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统 提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云 让客户云上业务运行更加稳定可靠的技术 您可用钉钉扫描下方二维码 加入阿里云SRE技术学院钉钉圈子 和更多云上人交流关于云平台的那些事。

17e30315-0e5f-4138-be8b-7c3791748a1e1.jpg


本文转自网络,原文链接:https://developer.aliyun.com/article/785342
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐