阿里巴巴旗下-淘票票 王伟 撰稿

1. 简介

淘票票为了开拓国际业务,需要做国际化的在线售票,并选择了阿里云新加坡节点作为技术方案,项目上线后急需一套自动化的监控系统代替人肉维护监控。看了ARMS的功能说明,发现其刚好以很低的接入成本来满足我们业务实时监控的需求,因此决定采用阿里云的业务实时监控服务(ARMS)做业务监控。

业务的基本需求是需要实时大盘和报警功能,对要实时统计订票接口的各种状态进行统计和报警,包括:

  • 订票成功率,从业务层面看是否系统运行正常。
  • 订票接口状态,如响应时间,同比环比调用,等,从系统层面看是否系统运行正常。

以下篇幅从日志设计到配置,到最终大盘展示。

2. 监控配置

2.1. 采集日志

ARMS基本原理是采集日志通过实时流式计算出聚合数据监控业务,可以通过ECS,LogHub,SDK等多种方式获得日志源,这里我们选择LogHub,因为我们所有使用阿里云的ECS已经采集日志到日志服务上,只需要简单通过配置即可让ARMS从LogHub上获取日志。

采集到LogHub上的原始日志示例为:

2017-08-21  13:54:48,805|20170821|2f58c35e15033448888056471d27aa|tibizrouter|HSFBizProcessor-5-thread-265|INFO|API_DIGEST:108|RegionAPIImpl|getRegionNotice|1|0|Y[{"appChannel":"000100","appDevice":"458805f1934f07_dwada29t0gCNkDAIQwAJI4EOia__353317069054105","appEnv":"PROD","appPlatform":"ANDROID","appVersion":"4.1.2","regionId":1}]|-2017-08-21   13:54:48,806|20170821|2f58d75c13231228888057385d7976|tibizrouter|HSFBizProcessor-5-thread-244|INFO|API_DIGEST:108|ConfigAPIImpl|getByGroup|3|0|Y|[{"appChannel":"000100","appDevice":"660d3b4bd6872442__WX/m9PEqA2cDANH6dYHwh2k6__3550awdaw61314546","appEnv":"PROD","appPlatform":"ANDROID","appVersion":"4.2.0"}]|-

按照我们定义的分隔符解析日志格式为JSON,格式示例如下:

{"__column15__":"28667","__column16__":"","runtime":"449","__column17__":"","__column14__":"4","response":"-","appName":"tigateway","time":"2017-04-19 21:24:20,462","apiName":"ticketnew","logLevel":"INFO","request":"{\"boxOffice\":\"TICKETNEW\",\"extAreaId\":\"3\",\"extCinemaId\":\"4\",\"extScheduleId\":\"28667\"}","traceId":"2f58d75c1492608260eeaa2072d7d0f","thread":"HSFBizProcessor-5thread-42","resultCode":"0","__column18__":"","indiaTime":"20170419","logName":"API:73","method":"PULL_SOLD_SEAT","success":"Y"}  {"runtime":"1","response":"-","appName":"tibizrouter","time":"2017-04-19 21:24:21,102","apiName":"MovieAPIImpl","logLevel":"INFO","request":"[{\"appChannel\":\"000100\",\"appDevice\":\"ANcca0bff117c2faaf__WPnpLeWzcDAIlMjjPv2LJS\",\"appEnv\":\"PROD\",\"appPlatform\":\"ANDROID\",\"appVersion\":\"4.1.0\",\"movieId\":2515,\"regionId\"1}]","traceId":"2f58d75c1492adwa611022076d7d0f","thread":"HSFBizProcessor-5-thread-40","resultCode":"0","indiaTime":"20170419","logName":"API_DIGEST:108","method":"getMovieDetail","success":"Y"}

其中:

• method是业务方法名,通过appName,apiName和method来唯一确定某个应用系统上某个接口的业务方法;
• success用来表示该业务方法执行成功与否;
• resultCode来用表示方法返回的错误码;
• runtime表示该方法执行的时间,单位为毫秒,可以用来统计哪些方法执行较慢,做后期优化;
• request为方法请求参数。

2.2.配置切分

对以上已经存在的字段按照JSON切分器切分,为了计算成功率,还需要把成功数转换成数字类型,方便在数据集做累加来计算。

2.3.配置数据集

配置接口成功率,通过sum累加得到成功的数量successCount,通过count得到总数量totalCount,使用successCount/totalCount得到成功率,当然也可以额外计算平均接口耗时等参数,在通过下砖维度获取按维度的成功率。

2.4.配置报警

由数据集可以直接配置报警,当成功率低于一定阈值的时候直接发出报警,实时监控线上业务,最大成都降低业务影响范围。

2.5.配置业务大盘

通过配置好的数据集就可以配置业务接口成功率大盘了,用来监控各个业务的实时稳定性。

3. 业务提升

我们通过ARMS对目前线上大部分业务性能指标如成功率,接口错误码分布,接口平均响应时间等性能参数做了实时监控,尤其在前段时间两次重大活动中及时发现线上性能问题,针对特定问题及时响应解决起了巨大的作用,提升了业务稳定性和业务响应速度。

除稳定性方面,我们也通过ARMS配置实时业务数据监控,通过按维度统计订单,用户访问等业务数据,根据不同时间段的业务数据快速调整业务运营和决策,对业务增长起了很好的推动作用。

ARMS正在公测,速来

阿里巴巴淘票票专家分享:如何利用阿里云ARMS,搭建国际化在线售票的业务监控系统...相关推荐

  1. 利用阿里云OSS开发一个私人网盘/外链系统,php+js实现

    什么是阿里云OSS? 简单地理解,阿里云OSS(以下简称OSS)就是一个储存空间比较大的硬盘. 一般储存空间在40GB-400TB范围内 根据自己的需要去购买,而且便宜! 在阿里云官网可以购买. 我自 ...

  2. 教你利用阿里云服务器搭建一个随时随地的Web IDE

    前言 我们在学习各种编程语言的时候,总是要安装不同的IDE,需要去配置各种环境变量,而且对于配置比较低的电脑来说,打开各种IDE后风扇就会开始疯狂旋转,在这种噪音下很难专心去敲代码. 如果问我编程工具 ...

  3. 杜彪:天猫数据如何运营、变现? 利用阿里云聚石塔在双11的成功案例

    本文作者杜彪,毕业于北京大学计算机系,长期从事人工智能,数据技术研究与应用,国际信息研究学会中国分会副秘书长,北京裕兴科技集团高级顾问. 有一次听闻他利用电商数据做精准营销.没听到他的故事之前,我曾粗 ...

  4. 利用阿里云如何开发一款直播app?

    在开发的过程中应该注意些什么?下面让小编告诉你: 随着互联网的发展,越来越多的人已经加入互联网的行列.而且很多的人也开始直播,和众多的网友分享自己身边事情.互联网还在加速发展,从PC互联网,到移动互联 ...

  5. 弹性计算产品专家张新涛:阿里云视觉计算的思考与实践

    2023 年 3 月 23 日,NVIDIA GTC 开发者大会阿里云开发者社区观看入口正式开放,阿里云弹性计算产品专家张新涛带来题为<重构计算,驱动视界:阿里云视觉计算思考与实践>的分享 ...

  6. 利用阿里云搭建NFS服务器

    一.阿里云服务器(ECS) Linux是现在计算机运维的主流服务器,正好阿里云服务器也是目前非常主流的云服务器,我就简单地利用阿里云服务器和Linux配置的NFS服务器和客户端.功能非常简单,但这是第 ...

  7. 如何利用阿里云域名远程访问家中群辉NAS(Docker容器)上的calibre、halo博客?

    看前备注:作者也是小白,只是在自己的摸索中积攒了一点经验,分享给大家.不能保证100%的正确,欢迎大家讨论分享. 我的博客(会同步更新的):陌路遥的博客 文作者:陌路遥/欢迎转载 如何利用阿里云域名远 ...

  8. 阿里云盘如何分享压缩包_阿里云盘能分享压缩包吗?

    网盘的分享功能可以说是我们使用最多的功能之一,大家都知道百度网盘的功能很强大,不仅可以分享软件.视频.文档.还可以分享压缩包,但是由于百度网盘的尿性大家心里都清楚,现在大家都已经开始转战不限速的阿里云 ...

  9. 货车帮CTO冯亮:利用阿里云服务,发展物流产业互联网

    如何借助云计算这一基础设施,利用大数据改变产业生态?10月12日,"互联网+物流"的独角兽企业--货车帮的CTO冯亮,在杭州云栖大会上,分享了货车帮利用阿里云服务提高货物运输效率, ...

最新文章

  1. 【2021年度训练联盟热身训练赛第四场】Game Map(python C++)
  2. varnish 防盗链
  3. C++ Public, Protected, Private
  4. Unix command to find CPU Utilization
  5. 2030年,逾1亿中国人需要学习新技能并转换岗位,这就是摩擦性失业
  6. 谷歌浏览器正式版90_谷歌浏览器 Google Chrome v79.0.3945.88 正式版
  7. UDP和TCP的优缺点
  8. C语言: ---Linux下ulimit是什么鬼
  9. mysql日志模式默认是raw还是_深入学习MySQL 02 日志系统:bin log,redo log,undo log
  10. 【PHP面向对象(OOP)编程入门教程】20.PHP5接口技术(interface)
  11. 吾爱404错误页面圈小猫游戏代码
  12. socket pro 启动客户端的命令
  13. 谈谈两个互联网大佬的「认知革命」
  14. c 添加mysql表单的一行数据类型,MySQL InnoDB表行格式及压缩
  15. 如何保护Java程序 防止Java反编译
  16. SyntaxError (语法错误)
  17. eclipse java混淆打包,Android Studio和eclipse混淆打包总结
  18. Linux安装Jenkis后启动Unit jenkins.service entered failed state (一)
  19. seo可以从哪些方面优化(seo优化的方法有哪些)
  20. Android 支付宝商户-签约代扣 一个坑的记录(4001)

热门文章

  1. 网络层协议——ARP协议
  2. python入门(八) 书体检测和识别
  3. App自动化测试笔记
  4. 第65篇:探索顶级APT后门Sunburst的设计思路(修正篇)Solarwinds供应链攻击中篇...
  5. mysql使徒化_有关使徒行传的4件简单的事情要记住
  6. for循环执行顺序详解(避坑)
  7. 在虚拟主机上 php下载,在虚拟主机上复制安装本机Pear_PHP教程
  8. acme.sh 使用记录
  9. videojs中文网|videojs中文教程
  10. html5 text overflow,text-overflow属性怎么用