乐趣区

关于消息中间件:ARMS企业级场景被集成场景介绍

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

通过本次最佳实际内容,您能够看到 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:ASCM

阐明:因为 ARMS 监控利用数据,须要 EDAS 产品配合。本次测试先通过 EDAS 部署一个规范的 Spring Boot 利用,开明 ARMS 监控并失去监控数据。

图 2:EDAS 控制台

图 3:ARMS 控制台

3. 测试工具查看。

本实际将会在专有云环境中创立 win64 虚拟机,而后在虚拟机中装置 Postman 进行测试。

图 4:Postman 测试

3. Open API 应用

调用 URL 确认

OpenAPI 接口均为 REST 服务,首先确认服务的 URL。
每个专有云环境域名不同,会导致 URL 不同。请依据具体环境信息批改 URL 信息,前缀及端口不变。
[http://arms.console.example.com:8099/](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](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****

图 5:Postman 调用后果

4. 利用形容

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

图 6:DataV 展现

5. 查问接口调用次数

通过 /metric/Metric.json 接口取得利用相干性能数据,查问接口调用次数。

API 阐明

  • URL:[http://arms.console.example.com:8099/metric/Metric.json](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****

查问后果

参数设置:

图 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](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

查问后果

参数设置:

图 8:参数设置

查问后果:

图 9:查问后果

后果阐明:

  • 返回后果为 JSON 数据集。
  • 数据集会标示查问状态,胜利返回 200,如果失败会返回相应的错误码和谬误起因。典型谬误例如短少必要参数、身份认证谬误等(是因为 filters 参数没按格局要求写好)。
  • 本次查问未查到相干数据,所以 exception 数量为 0。

7. 查问以后利用实例数量

通过 /metric/Metric.json 接口取得利用相干性能数据,查问以后利用实例数量。

API 阐明

  • URL:[http://arms.console.example.com:8099/metric/Metric.json](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******

查问后果

参数设置:

图 10:参数设置

查问后果:

图 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](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******

查问后果

参数设置:

图 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:拓扑图

后果阐明:

  • 返回后果为 JSON 数据集。
  • 数据集会标示查问状态,胜利返回 200,如果失败会返回相应的错误码和谬误起因。典型谬误例如短少必要参数、身份认证谬误等(是因为 filters 参数没按格局要求写好)。
  • 查问后果是一个点线图的节点数据和连贯数据,须要使用者自行依照图表控件组装相应数据。

咱们是阿里云智能寰球技术服务 -SRE 团队,咱们致力成为一个以技术为根底、面向服务、保障业务零碎高可用的工程师团队;提供业余、体系化的 SRE 服务,帮忙广大客户更好地应用云、基于云构建更加稳固牢靠的业务零碎,晋升业务稳定性。咱们冀望可能分享更多帮忙企业客户上云、用好云,让客户云上业务运行更加稳固牢靠的技术,您可用钉钉扫描下方二维码,退出阿里云 SRE 技术学院钉钉圈子,和更多云上人交换对于云平台的那些事。

版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

退出移动版