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

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

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用户id121827433423****

查询结果

参数设置:

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用户id1218274334230390

查询结果

参数设置:

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用户id12182743342******

查询结果

参数设置:

10.jpg

图10:参数设置

查询结果:

11.jpg

图11:查询结果

结果说明:

  • 返回结果为JSON数据集。
  • 数据集会标示查询状态,成功返回200,如果失败会返回相应的错误码和错误原因。典型错误例如缺少必要参数、身份认证错误等(是因为filters参数没按格式要求写好)。
  • Openapi返回的结果集组织形式与查询数据的开始时间、结束时间、数据间隔时间有关。本次查询是查询了过往7天,数据间隔时间设置成了24小时,所以这个结果集里返回了7个”data”的集合。
  • 每个data里包括在measuredimension里指定的查询,以本结果集为例,就包括: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;单个应用的关系使用APP
pidString应用对应的pid当type=APP时必须填写

调用示例

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

参数填写示范:

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

字段名称字段类型字段含义必选示例值
startTimeLong查询数据的起始时间1578199319898 (1月5日)
endTimeLong查询数据的截止时间1578804119898 (1月12日)
_userIdString用户id1218274334******
typeString查询类型APP
pidString应用对应的pid1218274334230390@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参数没按格式要求写好)。
  • 查询结果是一个点线图的节点数据和连接数据,需要使用者自行按照图表控件组装相应数据。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

千万并发连接下,如何保障网络性能

过去几十年互联网呈爆发式的增长,内容的丰富以及层出不穷的DDoS攻击等,对网络性能提出了极大的挑战,也同样促进了网络基础设施的快速发展。运营商的带宽越来越大,CPU/网卡等硬件的性能也会越来越强。但在很长时间内,软…

kafka window 启动_Apache Flink结合Kafka构建端到端的Exactly-Once处理

Apache Flink自2017年12月发布的1.4.0版本开始,为流计算引入了一个重要的里程碑特性:TwoPhaseCommitSinkFunction(相关的Jira)。它提取了两阶段提交协议的通用逻辑,使得通过Flink来构建端到端的Exactly-Once程序成为可…

浅谈云原生架构的 7 个原则

简介: 作为一种架构模式,云原生架构通过若干原则来对应用架构进行核心控制。这些原则可以帮助技术主管和架构师在进行技术选型时更加高效、准确,下面将展开具体介绍。 服务化原则 在软件开发过程中,当代码数量与开发团队规模都扩…

深入浅出FlatBuffers原理

简介: FlatBuffers 是一个开源的、跨平台的、高效的、提供了多种语言接口的序列化工具库。实现了与 Protocal Buffers 类似的序列化格式。主要由 Wouter van Oortmerssen 编写,并由 Google 开源。本文将基于高德地图数据编译增量发布使用了FlatBuffers序…

java 反编译class文件_用Java实现JVM第三章《解析class文件》

解析class文件案例介绍本案例主要介绍通过java代码从class文件中解析;class文件、常量池、属性表;作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类。为了使java程序可以“编写一次,处处运行”,Java虚拟…

解放人与设备距离,5G时代的远程操控该如何完成

物联网这个概念早在十多年前便已提出,其主要依托于移动通讯网络来实现其功能的传输。在过去物联网领域的一些设备控制场景中,我们或多或少都见到过远程控制技术的身影,但受限于当时的网络条件和技术场景,大部分应用都属于对设备的…

Spark 大数据处理最佳实践

开源大数据社区 & 阿里云 EMR 系列直播 第十一期 主题:Spark 大数据处理最佳实践 讲师:简锋,阿里云 EMR 数据开发平台 负责人 内容框架: 大数据概览如何摆脱技术小白Spark SQL 学习框架EMR Studio 上的大数据最佳实践 直播…

CNCF TOC 委员张磊:不断演进的云原生给我们带来了什么?

简介: 任何一种云原生技术,它不再是某种能力的弥补,而是更多地将云的能力以某种方式更简单、更高效地透出给我的应用去使用。无论是容器、K8s 还是 Service Mesh,他们都是在不同的环节帮助应用本身能够更好地去使用云服务。 作者…

php url传递参数_互联网系统(APP、网站等)通信基石——会话(PHP版)

一、会话概述1.1、技术背景互联网通信中采用的Http协议(建立TCP连接->Http请求->Http应答->断开TCP连接)本身是无状态的,即Http各请求之间是相互独立、互不相关的,而大量应用需要将各请求关联起来(如:用户登录系统购物、多次购买行为…

十年探索,云上明灯,re:Invent再启掀产业风暴

15年前,IT基础设施有着太多的限制,成本高、反应慢、灵活度低,对于企业的创新与发展有着很大的伤害。当亚马逊推出全球第一个云计算服务简单存储 Amazon S3时,可能没有太多人相信,这些内容将会开启一个新世界的大门&…

用手机「3D探店」是种什么体验?

简介: 未来场景尽在眼前!阿里云3D全景网站通过云端算法技术自动建模,将线下场景1:1真实还原到线上,让用户足不出户就可以感受到真实的3D空间漫游效果。 在手机里用3D探店打卡是种什么样的体验? 走进商场,每…

mysql bin oct_python 讲解进制转换 int、bin、oct、hex

相关免费学习推荐:python视频教程原理十进制转n进制都可以使用倒除法:对十进制进行除n的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.n进制转十进制:(例子:二进制转十进制)101001 > 2^5 …

java设置字体大小和颜色_Java 设置Excel图表背景填充(颜色、图片填充)

本文介绍通过Java程序来设置Excel图表背景填充的方法,填充时,可设置颜色填充或者加载图片填充;填充区域可设置整个图表区域或者绘图区域。设置方法参考以下内容。使用工具:Free Spire.XLS for Java(免费版)…

英特尔TCI技术落地,锐捷网络发布OCS终端云化新品

编辑 | 宋慧 出品 | CSDN 云计算 2021 年 6 月,国内一直深耕桌面虚拟化的厂商锐捷正式发布了新一代云桌面解决方案——锐捷三擎云桌面解决方案( “精耕细作”桌面云市场的锐捷,重磅发布三擎云桌面 ),其中三擎指的是终端…

从理念到实践跳跃式演进! 云的原生“免疫系统”如何有机作战?

简介: 7月16日,以“原生安全二倍速:全面融入基础设施”为主题的阿里云原生安全线上专题活动收官,诠释由云而生的能力如何解决数字经济时代的安全新挑战,让高等级安全作为一种基础设施,成为数字业务发展的“…

安卓开发替换json字符串中的数据_22个JavaScript开发技巧合集

作者:kancloud转发链接:https://www.kancloud.cn/dennis/tgjavascript/241855开发技巧1、使用var声明变量如果给一个没有声明的变量赋值,默认会作为一个全局变量(即使在函数内赋值)。要尽量避免不必要的全局变量。2、行尾使用分号虽然JavaScr…

Python静态类型解析工具简介和实践

简介: Python是一门强类型的动态类型语言,开发者可以给对象动态指定类型,但类型不匹配的操作是不被允许的。动态类型帮助开发者写代码轻松愉快,然而,俗话说:动态一时爽,重构火葬场。动态类型也带…

拥抱创新二十载,微软“创新杯”持续孵化中国青年开发者智慧创意

12月13日,2022 第二十届微软“创新杯”全球学生大赛(以下简称“创新杯”)中国区总决赛结果正式揭晓。来自西安的 Silent Talk 团队凭借Silent Talk—— Speech Rehabilitation Training 项目,在 22 支决赛队伍中脱颖而出&#xff…

AI和大数据结合,智能运维平台助力流利说提升核心竞争力

简介: 简介:本文整理自数智创新行——智能运维专场(上海站),流利说最佳实践演讲:《基于SLS千万级在线教育平台统一监控运营实践》 作者: 孙文杰 流利说运维总监 元乙 阿里云智能技术专家 优质…

核桃编程:前端可观测性建设之路

简介: 随着核桃编程业务的快速增长,核心应用的系统规模和系统复杂度也在经历翻天覆地的变化。核桃技术团队不断通过新兴的技术手段维护整套系统架构的技术先进性。在3 年时间里,技术团队至少对整体系统架构进行了 6 次以上的重大重构&#xf…