共计 8120 个字符,预计需要花费 21 分钟才能阅读完成。
简介: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 里包含在 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](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 技术学院钉钉圈子,和更多云上人交换对于云平台的那些事。
版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。