EDAS伴侣ARMS终极进化:业务监控实时无边界

EDAS伴侣ARMS终极进化:业务监控实时无边界

作为和企业互联网架构平台 Apsara Aliware“三驾马车”(EDAS/DRDS/MQ)并驾齐驱的又一重磅产品。本文主要从ARMS的诞生背景开始,介绍了ARMS的雏形,着重说明了全新公测的ARMS业务实时监控服务,最后和大家分享了ARMS的五个应用场景并做了ARMS的特点总结。 

以下为精彩内容整理:

 

ARMS助力企业应用实时监控

e8b5f933109de2a9301ff97a2273a2eca6d4b5bf

ARMS特点可以用三个词来形容:

  • 业务:方便快捷的定制能力。与其它平台监控产品不同的是,ARMS直接从业务的元数据开始入手,形成一个监控体系,为了让ARMS能理解业务元数据,我们做了很多数据接入层的工作。
  • 实时:基于大数据实时计算和存储平台。
  • 监控:在线报表,报警, Cube OpenAPI等多种输出。

业务监控架构对比

3e899e3b7b4395336cfef5ab66fe5113802974bb

传统业务监控架构定制复杂,对生产数据库有影响;多为离线计算,无法满足企业的业务监控实时性要求;各个基础组建昂贵,需要定制化硬件或一体机。

当前的互联网实时业务监控架构组件比较零散,无端到端打包方案,搭积木式方案复杂;对业务的日志侵入式改造成本高;实现周期长且门槛高,业务方需自行编写各个流计算,MR以及报表等实现。

阿里业务实时监控服务的架构(ARMS)从日志采集,日志传输到日志分析的高度一体化云上解决方案,无需客户运维;完备的日志接入方案,日志接入成本低;可视化的流计算定制接口,提升业务监控定制效率,降低入门门槛;内置报表大屏定制组件以及数据持久层组件,方便各类对接各类场景。

调用统计之实时计算解决之道

ARMS最初是为了应对阿里内部分布式架构的数据和性能统计而生的。这个统计产品就是后来大名鼎鼎的Eagleeye (鹰眼)系统。ARMS当时一开始是作为中间的日志处理层为Eagleeye服务的。

d572f95ba536c24c88efadb6f2a7ca1704871a18

该架构采用基于流计算的架构,以满足实时性。

以统计单个应用的各种服务调用为例:

1. 各个服务特定时间的所有调用次数。

2. 所有服务特定时间的所有调用次数。

3. 特定时间内被调用最多的服务。

方法:1. 服务器端日志抓取。2. Jstorm程序分析。3. 入库列式存储, 形成OLAP-Cube。

数据按需生成,计算实时进行。我们对于每一个数据,在实时计算里都会有对应的计算模块,当数据进来后,会落到各个相应的逻辑模块。我们这样做有两个优点:一是对业务无侵入式改造,一是无限横向扩展架构。

ARMS雏形计算编排的抽象化

4a477ea802fb6b0c20dbf57ce718124ddfc9344b

服务调用统计之后,各类监控需求接踵而至,流式计算定制应接不暇。除了要统计服务数,还要统计内存、CPU甚至容器里的指针,还有各种各样的二方应用,每个人都要写流式计算程序,这样业务方的接入效率就比较低,所以我们抽象出如图的改进措施。

每个人接ARMS系统时,在积木块里通过浏览器方式填各种各样的参数逻辑,这样就把流式计算接入从几天降到几分钟。

实时监控结果一致性的挑战

随着计算集群扩展,计算节点失效成为常态。

解决办法:

1. 日志队列记录批次。

2. 计算集群监控批次计算状态。

3. ARMS在恢复结点重发计算批次。

存储层数据补全的必要性

2d3f46d432e25395a010e5b85ab918cee740f5ec

业务端数据源不可控和高的业务要求( 交易,风控) 带来的数据一致性的新挑战。我们有什么解决办法呢?我们通过存储层后台的数据Merge机制保证最终数据准确性。从流式计算进来打标到后端存储时,我们能识别这种情况,我们不会丢数据,而是把数据放到客户里面,最后通过后台特殊机制merge掉,这样可以从源端避免异常事件的发生。

实时监控的存储层挑战

监控系统的存储层应提供M-OLAP Cube 的能力。

  • 多维度查询:同一类交易数据,按时间聚合方式查询,按类目方式聚合查询,按交易地域方式查询,同时按地域和类目方式上钻、下钻、选钻等。
  • 基于海量可扩展存储层的热点分散:尤其是实时计算中,如何避免当前时间的数据成为存储局部热点。
  • 实时计算某些特殊结果的基于时间维度聚合查询。
  • 压缩、分层、聚合等。

数据源和数据导出的丰富性

支持业务互联网快速迭代产品模式的监控。在业务支持层,我们做了更多的数据源的接入,一开始支持纯日志,后来为了满足多样性,同时也支持了API推送、MQ接收和Binlog解析等等。

业务实施监控的理解

  • 绝不仅仅是收集日志和消息通道:数据源需要丰富性;通道需要高可靠,可堆积,可回溯。
  • 绝不仅仅是实时计算:计算逻辑封装简单可用;监控数据的一致性保证。
  • 绝不仅仅是Hbase,  分析型数据库:如何保证数据补全;数据热点,数据压缩,查询效率。
  • 有了监控结果往往还需要临门一脚:报表,监控;实时大盘。

 

ARMS 让实时监控 化繁为简

经过4年的打磨,ARMS现有20+场景,数百不同的业务大盘,近千台服务器在数十集群上,最大集群规模处理数据15000+MB/s。

在全新的业务实时监控服务ARMS界面中,只需要关心三件事:数据从哪里来;实时计算流程怎么编排;数据该怎么用。

可视化计算编排

6c24bc411d880ec36be2dfae6e0d7517c0fb82cc

不需要编程的实时计算和MOLAP Cube。分布式计算只做两件事情:数据清洗和聚合据算。ARMS中的Map步骤,不需要写一行代码,需把自己的数据导入进来,通过做一些切分逻辑等,自动解析成KV,数据也可是以逗号或冒号隔开的文本方式;Reduce也不需要写一行代码,需做三件事:计算值;维度是什么;数据粒度。

灵活使用 ARMS 结果

ARMS 的最终数据监控结果可以以三种方式供您的IT系统访问。

  • 访问在线报表:通过报表控件和大盘来查看您的数据。
  • 接收报警监控:通过定义需要报警的指标以通过短信,邮件来接受报警监控。
  • 访问数据集的 OpenAPI:每个数据集类似于SQL的一张表,在监控任务中通过配置产生;和传统M-OLAP数据魔方相似,只是通过数据集的OpenAPI进行访问;数据集OpenAPI同样适用于报表控件和报警规则。

拖拽而出的实时大盘

404cb89667f73d4518de072b9366c21decaee499

不需要任何编程即可拖拽式定制您的大盘。ARMS支持8种控件,它们对维度的要求是不一样的,用户只需要根据不同的表选取不同的维度,根据不同的表格类型,我们可以帮用户生成适合的数据集,同时各个控件通过拖拽式的组合组合成实时在线大盘。

 

ARMS应用场景

应用性能和状态监控实时大盘。

  • 系统性能和调用日志系统:应用/机房聚合分析——系统监控大盘——性能和状态异常报警。
  • 电商交易实时大盘:电商交易日志收集——地域、门店、商品维度分析——销售实时大盘——销售下跌预警。
  • 公交运力实时监控系统:公交GPS日志+刷卡日志——地图区域聚合分析——公交运力分布实时展示——运力和拥堵报警。
  • 移动终端实时监控系统:手机客户端日志——地区版本聚合分析——客户端使用大盘——客户端异常报警。
  •  物流线路实时监控和预测系统:物流订单数据收集——揽收送达出入仓聚合分析——仓位派送路线水位实时大盘——仓位爆仓预警。

 

ARMS的独特之处

061b3e1fd5f1afd3d5f5ca2016fdfe1e2ea903c7

  • 业务:  直接从业务数据(Business Raw Data) 出发,赋予用户自己定制的能力。
  • 实时:  基于大数据实时计算,在海量数据中“正确地”第一时间捕获异常。
  • 监控在线报表,各类报警,以及MLOAP数据魔方的能力。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108902.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 狂神说Linux_狂神说博客园

    狂神说Linux_狂神说博客园Linux在服务器端,很多大型项目都是部署在Linux服务器上利用VM + Centos7搭建本地Linux系统你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。概念云服务器就是一个远程电脑Linux中一切皆文件根目录/,所有的文件都挂载在这个节点下/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev : dev是Device(设备

  • php开发微信公众号步骤_PHP接口

    php开发微信公众号步骤_PHP接口最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式那么URL怎么填写呢?网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,

  • Python-random函数用法

    Python-random函数用法Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。random中的一些重要函数的用法:random.random()random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。importrandomprint(random.random())&…

  • 大学计算机系最努力的同学都是如何学习的?

    经常会被同学们问到这个问题,要怎么努力才能找到好工作?学习好就能进好公司?屁!被学校教育坑的一把鼻涕一把泪的老学长来回答一波。我上大学时,连续三年得过国家励志奖学金,英语过六级,以为软考有用,还考了个软件设计师证书,以为四级有用,也考了个软件测试工程师证书,看人家用c++写软件,自学MFC写了几个桌面小程序。自以为很牛逼的去找工作,结果要价2500,都没人收,2011年,一个计算机系top级毕业生,薪资还没流水线的高。现在工作近十年,也辗转几个大厂,做校招、社招面试也不下于上百场,这

  • Map集合总结

    Map集合总结一:MapMap用于保存具有映射关系的数据,总是以键值对的方式存储数据。Map继承树Map集合的key和value都可以是任何引用类型的数据。Map集合的key不允许重复,value允许重复。key和value之间存在

  • VS2013验证控件出现 WebForms UnobtrusiveValidationMode 必须“jquery”ScriptResour……错误的解决方案

    VS2013验证控件出现 WebForms UnobtrusiveValidationMode 必须“jquery”ScriptResour……错误的解决方案

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号