百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

ARMS 企业级场景被集成场景介绍(arm saas)

toyiye 2024-08-17 00:33 10 浏览 0 评论

通过本次最佳实践内容,您可以看到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

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

3.测试工具检查。

本实践将会在专有云环境中创建win64虚拟机,然后在虚拟机中安装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

参数列表

字段名称

字段类型

字段含义

是否必选

备注

_userId

String

用户id

用户名称(如arms_admin)

返回格式示例

{
    "code": 200,
    "data": {
        "details": [
            {               
                "pid": "string", //应用对应的pid
                "regionId": "string",                
                "serviceName": "string" //应用名称
            }
        ],
        "services":[ //应用名称列表
           "string",
           "string"
        ]
    },
    "success": true
}

Postman调用结果

参数设置:_userId= 121827433423****

4. 应用描述

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

5. 查询接口调用次数

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

API说明

  • URL :http://arms.console.example.com:8099/metric/Metric.json
  • 接口说明:

字段名称

字段类型

字段含义

是否必选

备注

startTime

Long

查询数据的起始时间

endTime

Long

查询数据的截止时间

intervalInSec

Integer

时间间隔

建议填写

metric

String

metric字段

详细填写参考参数填写示范

filters

List[String]

过滤字段

详细填写参考参数填写示范

measures

List[String]

指标

详细填写参考参数填写示范

dimensions

List[String]

维度

详细填写参考参数填写示范

orderBy

String

排序字段

sortOrder

String

排序

默认不排序(ASC或者DESC)

limit

Integer

返回条数

_userId

String

用户id

用户名称(如arms_admin)

调用示例

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

参数填写示范:

字段名称

字段类型

字段含义

必选

示例值

值来源

startTime

Long

查询数据的起始时间

1578199319898

系统时间

endTime

Long

查询数据的截止时间

1578804119898

系统时间

intervalInSec

Integer

时间间隔

默认3600秒,即1小时

人工设置

metric

String

metric字段,查询的指标

APPSTAT.DETAIL

人工设置

filters

List[String]

过滤字段,严格按照格式,否则调用出错

[{key=pid,value=1218274334230390@db61f75c2f******},{key=regionId,value=cn-******-d01}]

Pid、regionid来自于专有云环境

measures

List[String]

指标

[rt,count,error,errrate]

API文档

dimensions

List[String]

维度

[pid,rpcType,rootIp]

API文档

orderBy

String

排序字段

sortOrder

String

排序

默认不排序(ASC或者DESC)

limit

Integer

返回条数

_userId

String

用户id

121827433423****

查询结果

参数设置:

结果说明:

  • 返回结果为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
  • 接口说明:

字段名称

字段类型

字段含义

是否必选

备注

startTime

Long

查询数据的起始时间

endTime

Long

查询数据的截止时间

intervalInSec

Integer

时间间隔

建议填写

metric

String

metric字段

详细填写参考下文

filters

List[String]

过滤字段

详细填写参考下文

measures

List[String]

指标

详细填写参考下文

dimensions

List[String]

维度

详细填写参考下文

orderBy

String

排序字段

sortOrder

String

排序

默认不排序(ASC或者DESC)

limit

Integer

返回条数

_userId

String

用户id

用户名称(如arms_admin)

调用示例

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

参数填写示范:

字段名称

字段类型

字段含义

必选

示例值

值来源

startTime

Long

查询数据的起始时间

1577980826988

系统时间

endTime

Long

查询数据的截止时间

1578585626989

系统时间

intervalInSec

Integer

时间间隔

默认3600秒,即1小时

人工设置

metric

String

metric字段,查询的指标

APPSTAT.EXCEPTION

人工设置

filters

List[String]

过滤字段,严格按照格式,否则调用出错。

[{key=pid,value=1218274334230390@db61f75c2f******},{key=regionId,value=cn-******-d01}]

Pid、regionid来自于专有云环境

measures

List[String]

指标

[count]

API 文档

dimensions

List[String]

维度

[pid,rpc,endpoint,exceptionInfo]

API文档

orderBy

String

排序字段

sortOrder

String

排序

默认不排序(ASC或者DESC)

limit

Integer

返回条数

_userId

String

用户id

1218274334230390

查询结果

参数设置:

查询结果:

结果说明:

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

7. 查询当前应用实例数量

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

API说明

  • URL :http://arms.console.example.com:8099/metric/Metric.json
  • 接口说明:

字段名称

字段类型

字段含义

是否必选

备注

startTime

Long

查询数据的起始时间

endTime

Long

查询数据的截止时间

intervalInSec

Integer

时间间隔

建议填写

metric

String

metric字段

详细填写参考下文

filters

List[String]

过滤字段

详细填写参考下文

measures

List[String]

指标

详细填写参考下文

dimensions

List[String]

维度

详细填写参考下文

orderBy

String

排序字段

sortOrder

String

排序

默认不排序(ASC或者DESC)

limit

Integer

返回条数

_userId

String

用户id

用户名称(如arms_admin)

调用示例

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

参数填写示范:

字段名称

字段类型

字段含义

必选

示例值

值来源

startTime

Long

查询数据的起始时间

1577980826988

系统时间

endTime

Long

查询数据的截止时间

1578585626989

系统时间

intervalInSec

Integer

时间间隔

默认3600秒,即1小时

人工设置

metric

String

metric字段,查询的指标

APPSTAT.DETAIL

人工设置

filters

List[String]

过滤字段,严格按照格式,否则调用出错。

[{key=pid,value=1218274334230390@db61f75c2f28609},{key=regionId,value=******}]

Pid、regionid来自于专有云环境

measures

List[String]

指标

[count]

API 文档

dimensions

List[String]

维度

[pid,rootIp]

API文档

orderBy

String

排序字段

sortOrder

String

排序

默认不排序(ASC或者DESC)

limit

Integer

返回条数

_userId

String

用户id

12182743342******

查询结果

参数设置:

查询结果:

结果说明:

  • 返回结果为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
  • 接口说明:

字段名称

字段类型

字段含义

是否必选

备注

startTime

Long

查询数据的起始时间

endTime

Long

查询数据的截止时间

_userId

String

用户id

用户名称(如arms_admin)

type

String

查询类型

查询全部关系使用ALL;单个应用的关系使用APP

pid

String

应用对应的pid

当type=APP时必须填写

调用示例

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

参数填写示范:

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

字段名称

字段类型

字段含义

必选

示例值

startTime

Long

查询数据的起始时间

1578199319898 (1月5日)

endTime

Long

查询数据的截止时间

1578804119898 (1月12日)

_userId

String

用户id

1218274334******

type

String

查询类型

APP

pid

String

应用对应的pid

1218274334230390@db61f75c******

查询结果

参数设置:

查询结果:

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

实际拓扑图效果如下:

结果说明:

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

原文链接:http://click.aliyun.com/m/1000284318/

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

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码