开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:消息队列和应用工具产品体系-ARMS 监控种类简介(2)】
课程地址:https://edu.aliyun.com/course/3112075/lesson/19052
消息队列和应用工具产品体系-ARMS 监控种类简介(2)
内容介绍
一、云波测简介
二、链路追踪 Tracing Analysis
三、链路追踪主要工作流程
四、链路追踪的主要功能包括
五、开发者使用ARMS监控的步骤
六、使用自定义监控的具体步骤
一、云波测简介
1.云拨测是指利用遍布全球的监控网络。模拟真实终端用户,对目标应用进行性管理和网络性能监控以变先于最终用户发现故障隐患。
2.云拔测主要的应用场景有:域名解析监测,运营商监测,用户体验监测,竞品对比监测,页面元素监测。
云波测为云上用户提供了开箱即用的企业级主动拨测式的应用监控解决方案,它利用遍布全球的监控网络从真实终端用户使用场景的角度对目标应用进行性能管理和网络性能监控,从而使开发者能够观察到应用所在防火墙之外的各项环节性能。先于终端用户挖掘出故障隐患助力云上用户提升自身应用的产品的用户体验。
云拨测可以提供地区、城市、运营商、时间序列等多个维度组合的数据分析模型,结合丰富的指标体系和直观的返点、趋势等在线图表,可以迅速定位目标应用的性能问题的受影响范围和根本原因。从而精确的解决 IT 问题,提升服务质量。
目前 ARMS 的云拨测功能支持针对 WEB 页面的浏览器拨测和针对网络链路的网络拨测。
云拨测产品的产品优势体现在以下几点:
浏览拨测任务支持发现页面元素级的错误并可以将问题原因精确定位到单词网络请求的过程中,可以有效的提升页面的性能和用户的体验。网络拨测任务支持 DNS 、 PIN 、 trsert 可以完美覆盖网络链路监控的场景。
云拨测支持从地区、城市、运营商等多个角度组合分析,并可以下端分析多样本详情。结合丰富的指标体系和直观的柱状图、条形图、折线图、散点图在内的图表快速定位问题受影响的范围及其根本原因。
借助云拨测无需修改应用代码或技术能力,既可以对本身应用进行性能检测。同时也可以对竞品应用进行对比检测,时刻掌握竞品差异做出更有优势的竞品策略。
利用云拨测的主动拨测模式可以在终端用户之前清晰的了解到目标应用在全球终端用户侧的网络、浏览等数字性能体验。提前定位解决每一次用户体验的不良问题,基于云拨测的技术特点,它的主要应用场景包括:通过云拨测对域名解析时间及解析错误率进行监控。获得解析过程的详细数据,可以具体分析网络的性能问题。通过云拨测,监控运营商的运营状态,获取不同运营商环境下浏览网页时的性能消耗及网络信息并可以统计出最慢运营商排名。
云拨测通过监控网页的整体性能、错误率、可用性等指标实时获取用户的体验水平。
云拨测既可以对自身应用进行性能监控也可以对竞品应用进行对比监控时刻掌握竞品差异,做出更具有优势的策略。
云拨测任务可以精确定位元素级错误,显示错误具体信息,帮助改善页面的整体显示效果。
二、链路追踪-Tracing Analysis
为分布式应用的开发者提供了完整的调用链路还原,调用请求量统计,链路拓扑,应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下开发诊断效率。
三、链路追踪主要工作流程
客户侧的应用程序通过集成电路追踪 SDK 上报实用调用数据,链路追踪支持多种语言的开发社区 SDK ,并支持 Open Tracing 。数据上报至追踪控制台后,链路追踪组件进行实时聚合持久化,形成链路明细,性能总揽,拓扑等监控数据。同时可以据此进行问题的排查,诊断,链路可以对接下游的阿里云产品。例如: LogSearch 、CloudMoniter 、 MaxCompute 等,用于离线分析,报警场景。
四、链路追踪的主要功能包括
追踪分布式架构中的所有微服务用户请求,并将它们汇总成分布式调用链路,通过追踪整个应用程序的用户请求,来支持汇总组成应用程序的单个服务和资源,基于 Open tracing 标准全面兼容开源社区,例如: Jaeger , Zipkin 收集的链路信息可以直接用于日志分析,企业可以对接到 Mac compute 等下游分析平台。
说明: ARMS 应用监控的调用链路查询与链路追踪可以解决分布式环境下的链路追踪问题。而区别主要在于应用监控使用业界商用 apm 工具中比较流行的无切入式接入方案。应用程序无需修改代码,通过挂载 agent 的方式切入监控,并且修改程序的启动方式在启动Java 程序的时添加 Java agent 的启动参数即可以启动应用监控服务。
在接入之后 agent 提供故障监护,用户体验监控,调用链路追踪以及故障诊断多种功能。而链路追踪主要定位于分布式链路追踪解决方案工具,功能比较单一,面向专业解决分布式环境下的链路追踪问题。应用通过接入链路 ASEK 来实现分布式链路追踪。 SDK 只负责链路监控功能相对专一,但是优势在于对于已使用的 jaejer ,zipkin 或者其他 open tracing 标准,SEK 的应用可以无缝迁移到链路追踪中,无需修改代码。而应用也不会存在平台绑定的问题,同时基于开源设计的力量,链路追踪 SDK 支持开发语言比应用监控的 agent 方式多很多。
应用监控支持 java 和 php 两种开发语言,而链路监控支持 java ,php ,python ,JS ,Golang ,.NET ,C++ 等绝大多数流行开发语言。
对于高度定制化的业务场景,如果ARMS现有的模块无法匹配其业务需求,可以通过创建自定义监控任务来清洗日志,自由统计所需指标,生成需要的数据与报表,灵活地配置报警。
五、开发者使用 ARMS 监控的步骤
主要包括三个步骤:
配置数据源,清洗日志,创建数据集
在创建任务时,可以使用完全自定义的方式创建,也可以基于模版创建主要任务。
从2017年开始,ARMS 开始上线标准行业模版功能,现有的标准行业模版包括:通过收集和分析 ngonkes 默认日志来监控服务端被访问情况的 ngonkes监控模版。通过收集各区域门店的销售状况,来实时反应零售行业销售现状的销售行业模版。今后 ARMS 还将陆续上线一系列常用的行业标准模版任务,供用户开箱即用。
六、使用自定义监控的具体步骤
在配置数据源阶段,自定义监控支持以下几种数据源:
1.ECS 数据源
开发者可以通过 Logtell agent 对 ECS 上的日志文件等数据进行增量推送,这种数据源通常适用应用运行在 ECS 上的业务监控场景。
2.Loghab 数据源
适用于日志已经被 Loghab 收集的场景。
3.SDK 数据源
通过 logstaes SDK 向 ARMS 直接推送日志,适合于不适合安装AGENT 但可以通过 SEK 提成来直接推送数据的场景。例如:移动终端。
4.MQ 数据源
即通过对接 MQ ,直接拉取 topic 内的消息,并基于内容进行实时统计,从实现业务的监控,适用于已经用 MQ 处理业务的场景,例如:电商,物联网,车联网等。
自定义监控的第二个步骤是:清洗日志。
清洗日志:通过切分静态 Jonny 等操作
将日志数据转换成标准的 kvoluy 过程。
日志清洗的两种模式:
智能清洗和自定义清洗
智能清洗模式会对抓取的日志进行切分,将其转化为标准的 KV 格式,包括对 KV 数据的删除或修改等操作。如果智能切分方案还未满足开发者的需求,开发者还可以使用格式化的自定义切分功能。
自定义清洗配置器采用所见所得得可视化配置方式,在可视化流程编辑区域,可以使用一个或多个积木块组装出日志清洗的逻辑。将原始日志区域的日志清洗为标准化的 kpd 。
在一些复杂的业务场景中,不同行的日志,由于操作类型不同,字段的个数,同位置各字段的含义都各有不同。可以通过 if then ,if alse 逻辑来区分不同日志的逻辑。
第三个阶段:创建多维数据集。
创建多维数据集是指将日志的流逝 KV 数据转化为结构化的模型数据存储,并提供页面查询方式和 KPI 查询方式。多维数据集在概念上可以理解为一个超立方块,而在物理上可以理解为一个多维数组,维的属性值被映射为多维数组的下标值或下标值的范围,而指标数据作为多维数的值存储数据的单元中,可以将维看作自变量,将指数数据看作应变量。
在 ARMS 中通过简单的操作可以生成多维数据集的数据组织和存储模式。