教年轻 AIoT 创业者如何从 0 到 1 实现AIoT 创业项目 了解详情
写点什么

去哪儿网张悦:合适的开源软件,支撑 800 万 + 监控指标

  • 2016-07-24
  • 本文字数:2337 字

    阅读完需:约 8 分钟

从垂直搜索起家,后杀入在线旅游交易。去哪儿网的业务越来越复杂,整个技术系统对可靠性、质量的要求越来越高,去哪儿网的工程师们克服了种种困难,确保了最终系统的顺畅运行。例如,去哪儿网的运维团队基于开源项目 Graphite+Grafana+Nagios 二次开发了监控系统 Watcher,用来支撑去哪儿百万级别的基础 / 业务监控指标。

2016 年 8 月 18-19 日,由极客邦、InfoQ 和听云联合主办的 APMCon2016 中国应用性能管理大会将在北京举行(现在报名,享8 折优惠),聚焦当前最为关键的移动端、Web 端和Server 端的性能监控和管理技术。

本届大会,我们有幸邀请到了去哪儿网运维开发工程师张悦,前来分享《去哪儿监控系统实践》的内容,讲述她在Watcher 开发过程中对监控系统性能的探索经验与实践。

InfoQ:请介绍一下您在 Watcher 开发过程中主要负责的内容?以及您现在的工作职责!

张悦:我是从 2013 年毕业就加入去哪儿,一直从事监控方面的改进和开发工作,参与 Watcher 从选型、设计、开发到维护的全过程,从一开始两个人到现在稳定的三个人的小团队,我们自己做产品 + 开发 + 测试。虽不敢说 Watcher 是一个成熟完备的监控方案,但现在 Watcher 已经承载了去哪儿网大部分核心业务的监控和告警。

目前我还是主要负责监控相关的开发和运维工作。

InfoQ:去哪儿网在后期使用大众监控工具 Cacti 遇到了什么瓶颈?在开发新的监控系统初期有哪些长远的规划?

张悦:其实 Cacti 我们也用了很长一段时间,一开始还是蛮稳定的,而且 Cacti 有丰富的第三方插件,但是随着指标量的增长,在性能上、扩展性上以及用户的使用效率上出现了一些问题,比如:

  1. 单点:一旦出了故障恢复起来较慢的话,那个期间监控系统是完全不可用的,就如同裸奔…
  2. 无法横向扩展:因为 Cacti 不是分布式的,指标量一大,单机磁盘有限,就不得不通过压缩 RRD 文件来换取空间,但是这样历史数据就失真了
  3. 监控可视化较弱
  4. 没有开放 API

所以,基于以上我们开始着手新监控系统时,设定的目标是必须要做到:

  1. 高可用
  2. 可横向扩展,易扩容
  3. 加强监控可视化

InfoQ:关于 Watcher,它是如何保证数据准确性和监控可视化的?

张悦:首先数据准确性上,上面提到了,之前 Cacti 因为不是分布式的,单机磁盘有限,所以选择压缩历史数据,一个月以前的数据就失真了。Watcher 设定目标时有一点是一定是要可横向扩展的,选型时我们选择了基于 Graphite,之所以会选择它,很大一部分原因也是它的设计完全是 scale out,每一层都是可扩展的。那么既然可以横向扩展,我们就可以把不压缩的时间区间放的大一些。同时我们也会对收集的指标进行抽样监控,比如断点监控,一定程度上也是保证数据的准确性。

关于可视化,我们希望可以做到直观方便,想怎么看就怎么看。我们选择基于 Grafana 来做二次开发,定制开发的主要点是集成 Qunar 的产品树、用户体系和基础监控,在 dashboard 上提供多维度灵活的数据展示,以及自定义空间来展示核心监控,再配合 Grafana 强大的可视化,基本达到了最初我们想实现的效果。

InfoQ:Watcher 的告警策略是什么样的?

张悦:最基本的是设置大于 XXX 或小于 XXX 就报警,除此之外常见的用法还有环比上周大于 XXX 或小于 XXX;可设定检查的频率、多次不 OK 再报警;不同时间段设置不同的报警规则;支持临时规则;报警联系人支持轮班;报警回调;多种通知方式等。

InfoQ:接下来,去哪儿网对 Watcher 的关注点将会集中在哪里?有什么计划吗?

张悦:主要在两个方面,一个是成本,一个是人员效率。当量小的时候,我们需要资源也少,但是目前 Watcher 监控指标已超过 800 万 +, 每分钟集群要支撑 1500 万指标上报,虽然 Watcher 是可横向扩展的,可以理解成加机器就可以了,但是这中间还是有很大优化的空间的,所以我们就需要关注成本控制。另外就是下一步计划报警上要继续完善,健全报警机制,通过人员对报警、故障的应答时间,反映出人员、团队的工作效率。

InfoQ:去哪儿网在自动化运维方面用了哪些工具?有什么考量?

张悦:监控相关的工具有:

  • Graphite
  • Grafana
  • Collectd

日志收集工具:

  • ELK
  • Mesos
  • Docker

存储工具:

  • Swift
  • MFS
  • Ceph

配置管理工具:

  • SaltStack
  • Ansible

LB 工具:

  • LVS
  • HAproxy
  • Nginx

这里只列举出来一部分我们在用的工具,我参与选型及开发的主要还是监控相关的。不过可以说一下我们对开源软件选择的思路,选择的过程基本是先分析场景,然后看每个软件跟场景的匹配程度以及开源软件的成熟程度,首先找到合适的开源软件,然后把它与我们的运维体系集成起来,比如 OpsDB,先解决了大部分问题,才会考虑基于原始版本定制开发。所以我们对自动化工具的选择就是选型加迭代,选择适合当前场景下的运维方式(工具)才是最重要的,并且总是把一个组件的从头开发放到最坏的打算里,Watcher 的选型过程也是按照这个思路做的。

InfoQ:之前,有电商网站因人为原因,导致订单被单方面取消,那么去哪儿网在监控这方面有哪些特定的措施?

张悦:订单被取消的可能性有很多,所以监控点也会很多。一般可以对“取消订单”量计数,根据指标波动情况设置阈值(包含同比阈值)来报警。

InfoQ:您即将在 8 月份的 APMCon 上发表《去哪儿监控系统实践》演讲,具体会讲哪些内容呢?

张悦:特别荣幸能参加 APMCon,作为一个默默无闻的程序媛,竟然能有幸和那么多技术大神一起分享,对自己来说是一次非常好的学习和锻炼的机会。

这个演讲主要是分享去哪儿监控系统 Watcher 的设计、选型、架构,Watcher 的开发过程中遇到的问题以及一些经验。这些经验对如何使用开源项目快速搭建一套监控系统会有一些帮助。

InfoQ:感谢张悦接受我们的专访,期待您即将在 APMCon 上的演讲。

关于受访嘉宾

张悦,去哪儿网运维开发工程师。于 2013 年加入去哪儿。一直从事运维开发,参与开发 Watcher 监控系统,现负责监控相关的开发和运维工作。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2016-07-24 21:066771
用户头像

发布了 138 篇内容, 共 55.5 次阅读, 收获喜欢 177 次。

关注

评论

发布
暂无评论
发现更多内容

食堂就餐卡系统架构设计文档

呆呆栋

什么是架构师?

呆呆栋

第一课 架构师的自我修养

Geek_bobo

架构文档编写

清风明月

架构师训练营第01周——UML练习

李伟

极客大学架构师训练营

架构师训练营-学习总结

~就这样~

程序员需要学会画UML图

张瑞浩

架构方法学习小结

梅子黄时雨

极客大学架构师训练营

就餐卡系统架构设计

祝好

食堂就餐卡系统设计

八两

第一节课的总结

王锟

就餐卡设计文档

chengjing

实例学习绘画UML图

张瑞浩

食堂就餐卡系统架构设计

~就这样~

就餐卡系统设计

平淡人生

极客大学架构师训练营

链改,改的是什么?

CECBC

区块链技术 不可篡改 链改 上链 Token

架构师训练营-第1周学习总结

红了哟

01周学习总结

dao

极客大学架构师训练营

架构师训练营第0期第1周学习总结

upupup

极客大学架构师训练营

关于架构师

莫莫大人

架构师训练营 Week 01 学习总结

Kun

极客大学架构师训练营

就餐卡系统(时间太紧张,阅读了很多,我转载的这篇)

王锟

架构师训练营第0期-第1周-作业一

极客大学架构师训练营

架构师训练营-食堂就餐卡系统设计

彭灵俊

极客大学架构师训练营

作业一:食堂就餐卡系统设计

丿淡忘

食堂就餐卡系统设计

upupup

极客大学架构师训练营

第一周学习笔记

丿淡忘

极客大学架构师训练营

架构师训练营第一周学习总结

阿德

食堂就餐卡系统设计方案-week01

老A

架构 架构师 极客大学架构师训练营 架构文档

食堂就餐卡系统架构视图

梅子黄时雨

极客大学架构师训练营

【第一周】学习总结——架构方法、软件建模与设计文档

三尾鱼

极客大学架构师训练营

  • 扫码添加小助手
    领取最新资料包
去哪儿网张悦:合适的开源软件,支撑800万+监控指标_DevOps & 平台工程_薛梁Lucien_InfoQ精选文章