消息队列和应用工具产品体系-ARMS 监控种类简介(1)

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测链路 OpenTelemetry 版,每月50GB免费额度
简介: 消息队列和应用工具产品体系-ARMS 监控种类简介(1)

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:消息队列和应用工具产品体系-ARMS 监控种类简介(1)

课程地址:https://edu.aliyun.com/course/3112075/lesson/19051


消息队列和应用工具产品体系-ARMS 监控种类简介(1)


内容介绍

一、个功能

二、ARMS 应用监控的技术特点

三、Prometheus 监控

四、前端监控

五、ARMS App 监控

六、ARMS 容器监控

七、业务监控

 

一、九个功能

ARMS 包含应用监控 Prometheus 监控和前端监控三大主要功能。涵盖了9个产品和功能模块,覆盖众多业务监控场景。

图片1.png

1.应用监控:主要面向分布式架构,用来监控 Java , php 等应用,可以查看应用拓扑,接口调用,异常事务,慢事务等。

2.前端监控:可以从页面打开速度,页面稳定性和外部服务调用成功率这三个方面来监控 web 页面和小程序的健康度。

3. Prometheus 监控:全面对接开元的 Prometheus 生态,支持类型重复的组件监控,提供全面托管的 Prometheus 服务。

4. APP 监控:专注于监控移动设备上的应用性能和用户体验,从崩溃分析,性能分析和远程日志这三方面精确衡量 APP 的性能。

5.业务监控:提供了从业务视角衡量应用性能和稳定性的新方法。对业务关键交易进行全链路跟踪,提供贴合业务的丰富性能指标与诊断能力。

6.容器监控:面向部署在容器服务 K8s 版本的集群,能够对节点机器上的资源和容器进行实施监控,和性能数据的可视化展示。

7.云拨测:利用遍布全球的监控网络以真实终端用户使用场所为视角,对目标应用进行性能管理和网络性能监控,提升产品的用户体验。

8.链路追踪:提供完整的调度链路还原,调用请求统计,链路拓扑,应用依赖分析等功能。可以帮助开发者快速定位,并诊断分析分布式应用的性能瓶颈。

9.自定义监控:针对高度制定化的业务场景,支持通过创定自定义监控业务来写日志,自由统计所需指令,生成所需要的数据报表,灵活的配置报表。

 

二、ARMS 应用监控的技术特点

使用 ARMS 的应用监控时,无需修改代码,只需要为应用安装一个探针, ARMS 就能对应用进行全方位的监控,下面介绍 ARMS 应用监控的技术特点

图片2.png

1、自动发现应用拓扑:

ARMS 应用监控探针能自动发现应用的上下游依赖关系,具体是ARMS 探针能够有效的捕获智能计算自动展示不同应用之间的 RPC 调用链路通过应用拓扑开发者可以轻松发现系统中的性能瓶颈和异常调用。

2、3D拓扑:

在计算出拓扑关系之后,ARMS 还可以将应用服务和主机的健康状况以及应用的上下依赖关系以 3D 拓扑图的方式进行立体化的展现帮助开发者通过直观的方法,监控应用服务和主机的健康状态。快速定位要发故障的服务,被故障影响的应用和关联主机等,从而全方位的诊断故障根源快速排除故障。

3、捕获异常慢事务和异常事务

在应用中,数据库的慢事务和异常事务往往会导致系统RT变长甚至服务不可用。为了应对这种情况 ARMS 可以及时捕获什么东西导致应用发生故障的异常事务和慢事务。同时可以进一步获取调用接口的MySQL ,mq 堆积分析报告或异常分析报告。对慢,错等常见问题进行更为细致的分析。

4、自动发现并监控接口

ARMS 的应用监控能够自动发现和监控代码中常见的外部框架和RBC 框架,用自动统计 web 接口和 RBC 接口的调用量响应时间,错误数等指标。

5、实时诊断

当开发者需要密切监控一小段时间内的应用性能时,例如发布应用或对应用进行压测时,可以使用 ARMS 应用监控的实时诊断功能

在开启了实时诊断之后 ARMS 应用监控会持续监控业务5分钟,并在这5分钟内全亮上报调用链路数据通过全亮上报的调用链路数据就能以出现性能问题的调用电度为起点,通过拓扑图和现成剖析等功能定位问题成因。

6、多维排查

同时 ARMS 还提供了查看分布式及本地式方法明细并按应用 IP 耗时等维度进行多维度分析等功能。通过搭配使用 ARMS 自定义监控中的全息排查功能,排除业务单据完整事务。

7、集成 EDAS、SAE 平台

ARMS 在设计之初就是为了分布式微服务而生因此 ARMS 应用监控支持一键即成阿里云微服务平台 EDAS 和SAE 让运行于阿里云中间键上的分布式应用的应用监控更加有效。

 

三、Prometheus 监控

图片3.png

 

1.Prometheus 监控系统是源自谷歌内部的监控系统。在2012年Soundcloud 公司的

2.Google 前员工创造了 Prometheus ,并作为社区开源项目进行开发。2015年该项目正式发布。2016年, Prometheus 加入云原生计算机监会成为受欢迎程度仅次于 conernetik 项目。

3.阿里云 Prometheus 监控在兼容开源产的基础上进行了功能扩展,添加了对容器的支持,并旦更经量、更稳定、更准确、数据量无上限,也节约了客户的运维成本。

Prometheus 的技术特点:

基于时间序列的梯队组成多维数据模型,提供了灵活的查询和聚合语言 pro mql。支持本地存储和分布式存储,通过 HDBB 的pro 模型,采集时间序列数据也可以通过 pith getaway 呈现 puth 模式。通过动态服务或静态配置发现目标机器,并支持多种图表和数据大盘与开源的 Prometheus 监控相比,阿里云的 Prometheus 监控整体架构更加轻量化,开发者无需自行搭建 Prometheus 监控系统,仅需要安装阿里云的 Prometheus 监控探针 promagent 即可开始监控服务。

在系统稳定性方面开元的 Prometheus 监控,一般会占用16 GB 至128 GB 的内存,而阿里云的 Prometheus 监控进占用200 MB 1GB 的内存和1盒CPU 。相比开元 Prometheus 的监控,阿里云的 Prometheus 监控更加稳定,在抓取和写入数据的准确性方面,开元 Prometheus 监控仅抓取一次数据,并且瞬时写入存储组件时存在丢弃逻辑。而阿里云Prometheus 监控抓取数据会重置多次持续并发写入存储组件并不存在丢弃逻辑。开元 Prometheus 监控的数据采集能力上限为百万条级别。
而阿里云 Prometheus 监控的数据采样能力可以按照副本数量水平扩展,从而均衡分解采集任务。

开元 Prometheus 监控的数据存储能力上限收本地磁盘大小的限制,而阿里云 Prometheus 监控使用中心存储服务,理论上存储能力无上限,阿里云的 Prometheus 监控完全介入开源版本生态链路中的客户端和查询语言部分,同时阿里云的 Prometheus 监控兼容并优化了开源生态链路中的采集规则和使用价值部分。

在使用成本方面,阿里云 Prometheus 监控支持可以K8S监控,在安装默认K 8S 监控后阿里云 Prometheus 监控会自动创建espoter 采集规则数据,大盘以及 arms 报警。功能部署由原来的三天左右降至10分钟左右。

 

四、前端监控

 

图片4.png

1.ARMS 的前端监控专注于对web 场景,weex 场景和小程序场景的监控。

2.从页面打开速度页面稳定性和外部服务调用成功率这三个方面监控web 和小程序页面的健康度。

为什么要有前端监控?

当用户访问应用业务时,整个访问过程可以分为三步:

页面产生时页面加载时页面运行时。

其中页面的产生在服务器端完成而页面的加载和页面的运行都是在用户的前端设备中完成。在现有的 APM 监控当中,为了保证线上业务的稳定运行,大部分产品会在服务端对业务的运行状态进行各种监控。现有的服务器监控系统相对已经非常成熟,而包含页面加载和页面运行时状态的前端监控的产品反而是一直欠缺的。这种情况会导致开发者无法在第一时间获得用户访问遇到的困难同时在现代互联网场景下,用户往往会分布在各个国家各个地区,用户和后端服务之间的网络环境一般比较复杂。在这种情况下,不同地点的用户应用加载速度差别会非常大,而开发者对用户的真实加载速度无法进行实时的统计和掌握,也就难以进行针对性的优化。另外在现在的业务前端应用中,会包含有大量需要在页面中加载的业务逻辑以及同后端之间的异部数据调用这种业务逻辑和异步调用基本上都是直接对用户的交互产生影响的功能。在这种情况下,如果无法对前端应用的性能和成功率进行监控,就会导致开发者对用户交互的执行状态处在未知的状态下。因此ARMS 推出了前端监控整体解决方案ARMS 的前端监控重点监控页面到加载过程和运行状态,同时将页面加载性能运行时的异常,以及API 调用状态和耗时数据实时上报到日志服务器,便于开发者实时了解用户前端的运行状态。

 

五、ARMS App 监控

图片5.png

 

1. 专注于监控移动设备上的应用性能和用户体验的工具

2. 分别从崩溃分析、性能分析和远程日志这三个方面来帮助您精确衡量App 应用的性能

3. 能够实时监控、快速定位性能和可用性问题

4. 以低成本、高效率发现App 应用中的各类隐患

随着移动互联网的蓬勃发展,企业应用除了通过网页前端提供服务外,大部分提供App 版本客户端提供服务。相比较于传统的网页前端App 端逻辑的复杂度远远超于网页应用,同时App 在运营过程当中往往会存在操作系统差异很大,应用版本不一致,缓存数据状态复杂等情况。因此出现逻辑错误,甚至崩溃的概率远远大于网页应用同时App 端大部分时间运行在移动网络环境中,相比较与有线网络环境,移动网络环境信号不同,出现网络延迟丢包错误等情况发生的概率大大增加,更增加了App 出现问题之后开发者的难度。

ARMS App 监控是专注于监控移动设备上应用性能和用户体验的工具分别从崩溃分析性能分析和远程日志,这三个方面来精确衡量App 应用的性能,并且能够实时监控快速定位性能和可用性问题,帮助开发者低成本高效率的方式发现App 应用中的各种隐患。

从用户的体验角度来看,移动端App 应用到崩溃是影响App 应用可用性的最大问题由于崩溃采集困难,崩溃分析缺乏上下文对照数据分析,缺乏深入挖掘,所以对于崩溃的分析一直是App 应用性能管理的难点所在。

而ARMS APP监控正是基于这些问题将安卓和iOS 平台常见的用户崩溃问题进行归类分析,帮助开发者快速发现定位问题。

性能分析是针对用户上线后性能问题所提供的服务,可以提供以下功能:

1.线上性能度量,包括启动速度,页面加载耗时,页面流畅度,机型地域等。

2.影响页聚合分析,包括性能影响用户数和用户百分比,版本对比。不同版本性能不同分析对比。

远程日志是针对用户上线后复杂问题所提供的服务,可以提供以下功能:

拉取全亮移动端上的崩溃异常日志,还原出做场景,快速定位复杂问题,单独客户反馈异常问题,可快速拉群日志进行排查。

 

六、ARMS 容器监控

随着容器技术的发展与使用,大量的企业业务已经运行于容器之中。这就使得容器技术越来越离不开对容器本身的监控。ARMS 容器监控能够对阿里云容器服务K8S 版到节点机器上的资源期容器进行实时监控和性能数据采集,并进行可视化展示,为开发者提供容器化环境端到端监控排查路径,容器监控服务能够自动获得当前帐号下阿里云容器服务 conernets 版集群信息。

基于Prometheus 监控数据集群事件,持久化数据以及集群的基本配置信息。ARMS 容器监控提供了集群资源监控生命周期监日志监控deployment 监控功能帮助开发者快速查看极圈内的 pod 的健康程度。pod 的CPU占用率,pod 的CPU和内存资源的使用情况,pod 在整个生命周期中的各个状态,pod 实时监控日志以及应用运行时,对环境的依赖程度。

ARMS容器监控还提供了集群中运行所有pod 的状态以及pod 本身的监控,pod 本身的监控包括事件监控生命周期监控资源监控以及日志监控。

事件监控是监控集群内事件信息,例如告警和错误事件等。 obernets 加工设计是基于状态的不同状态之间的转化会生成对应的事件,正常的状态之间的转化会生成nomal 级别的事件。正常状态与异常状态之间的转化会生成warning 级别的事件。开发者可以通过获取事件实施,诊断集群的异常问题。容器监控还提供异常pod 检测功能。

异常pod通常包括以下几种情况:

频繁启动网络流量不均未设置lemet 资源但实际占用资源较多,设置request 较大,有驱逐风险以及其他的异常 pod。容器监控通过对pod 的资源配置资源使用分布情况和历史异常事件,预估和展示当前集群中可能有风险的pod,并帮助开发者降低其风险。

同时对于部署在容器服务器cobernets 版本集群中的应用同样可以使用ARMS应用监控服务对其进行监控,在安装的应用监控探针之后,可以将容器与应用之间进行关联,既将容器的CPU 内存网络资源的使用情况以及集群异常事件和日志等信息与应用关联,有助于排查当前容器环境是否会对业务产生影响。

 

七、业务监控

image.png

 

监控方式

接入成本

实时性

灵活性

业务监控(应用探针)

低(业务信息在应用程序中自动采集上报)

实时(后台实时聚合运算展现)

高(灵活配置业务映射规则,立即生效)

自定义监控(日志)

高(需要改造应用程序,在日志中打印业务信息)

实时

低(新增的分析需求更改日志才能展示业务信息)

传统OLAP BI分析

高(为避免影响在线业务处理性能,需要新建离线分析数据库,定期同步数据)

非实时(由于数据同步的间隔,无法实时分析)

中(取决于同步的业务数据是否齐全)

1. ARMS业务监控对业务的关键交易进行全链路的监控

2. 实时业务的响应时长、次数和错误率等业务的指标,解决了应用程序和业务表现之间无法映射关联的难题

传统的监控工具大多从基础架构应用和服务请求等角度入手进行数据监控,但是这种较低层次的监控数据往往无法直观地体现当日下单,平均使用时间,成功率等业务问题,业务人员需要监控所关注的业务,但现有的监控系统无法表达业务语义。

应用系统包含很多业务语义,运营人员需要快速配置,并监控各个业务的流量数据新业务接口上线后,接口不稳定导致的异常或错误。开发人员需要针对此接口的每个调用分析定位问题业务负责人员需要梳理某个业务的依赖情况,并基于业务依赖进行相关业务,优化重点保障业务的稳定性在某电商中台化架构中交易中心负责支撑所有业务的下单处理逻辑。不同类目的商品交易处理逻辑,可能会有很大的差异,导致业务链路也完全不同,随着业务发展复杂度的增加,依靠传统的人工方式很难快速处理相关业务的交易链路

此外,由于不同类目的商品交易量存在差异,例如业务A今日的交易流量明显下跌,但业务A占整体交易流量的比重较低,所以单纯从整体交易下单的监控流量变化,无法精确到发现某些业务的问题

在此场景下开发者可借助于ARMS 业务监控在交易中心的下单入口处配置按商品类目分组监控例如按照女装类目或者家电类型,类目即可监控任意类目商品的交易情况以及快速梳理某一类某商品的交易链路。ARMS 业务监控对业务的关键交易进行全链路的监控,实施业务的响应时长,次数和错误率等业务指标解决了业务程序和业务之间无法映射脱联的难题,业务监控默认提供业务的链路拓扑以及吞吐量响应时间和错误率三个黄金指标。同时可以关联到相应的数据库请求异常和各级调用链路,ARMS 业务监控以代码无切入的方式制定业务,请求提供贴合业务的丰富性能指标与诊断能力。在完成接入业务监控的操作后,开发者就可以开始使用业务监控,包括创建业务监控任务和查看业务监控数据等。通常在http 的请求hider 请求参数和python 中或者在RPC 调用的请求参数中,都包含有业务信息,例如:订单金额用户名称,用户属性业务动作和来源等业务监控支持通过java 的方式,实时采集业务信息连带相应的URL 和接口名等信息一同上报。
开发者可以在业务监控的控制台通过可视化见面灵活的定义某个用户信息与URL、RPC接口的映射关系,包括需要匹配的信息和拆封的维度完成业务与服务的调用关联。

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
消息中间件 Java 开发工具
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
|
消息中间件 监控 测试技术
消息队列和应用工具产品体系-性能测试场景和工具
消息队列和应用工具产品体系-性能测试场景和工具
消息队列和应用工具产品体系-性能测试场景和工具
|
消息中间件 安全 云计算
消息队列和应用工具产品体系-混沌工程简介
消息队列和应用工具产品体系-混沌工程简介
消息队列和应用工具产品体系-混沌工程简介
|
消息中间件 网络协议 RocketMQ
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
消息队列和应用工具产品体系-消息队列 Rocket 版的主要功能
|
存储 消息中间件 监控
消息队列和应用工具产品体系-ARMS 服务的产品功能
消息队列和应用工具产品体系-ARMS 服务的产品功能
|
消息中间件 测试技术 数据库
消息队列和应用工具产品体系-微服务架构引发的问题
消息队列和应用工具产品体系-微服务架构引发的问题
消息队列和应用工具产品体系-微服务架构引发的问题
|
消息中间件 监控 Java
消息队列和应用工具产品体系-ARMS 监控种类简介(2)
消息队列和应用工具产品体系-ARMS 监控种类简介(2)
消息队列和应用工具产品体系-ARMS 监控种类简介(2)
|
消息中间件 存储 负载均衡
消息队列和应用工具产品体系-消息队列的基本概念
消息队列和应用工具产品体系-消息队列的基本概念
消息队列和应用工具产品体系-消息队列的基本概念
|
消息中间件 监控 数据处理
消息队列和应用工具产品体系-APM 系统简述和架构演化
消息队列和应用工具产品体系-APM 系统简述和架构演化
|
消息中间件 缓存 大数据
消息队列和应用工具产品体系-阿里云消息队列产品简介
消息队列和应用工具产品体系-阿里云消息队列产品简介
消息队列和应用工具产品体系-阿里云消息队列产品简介

相关产品

  • 应用实时监控服务