Wavefront 简介
Wavefront 是 VMware 于2017年收购的技术,被整合成为 VMware 云服务之一,命名为 Wavefront by VMware。Wavefront 以 SaaS 形式提供监控和分析功能,它就是为了监控云端服务而设计的,当然它也可以监控私有云中的传统系统和应用;Wavefront 从各个云服务收集详尽的性能数据和日志,供用户在此基础上分析应用的性能瓶颈所在、快速排除应用故障。
Wavefront 可以供应用平台管理员 SRE (Site Reliability Engineer) 、开发人员、系统管理员等各种角色所使用。使用者通过 Wavefront Query Language 来对 Wavefront 所收集的数据进行挖掘和分析,分析的结果以图形化的结果展现,便于使用者进行分析和比对。
跟传统的监控平台相比,Wavefront 有着以下的特点:
- 支持各种规模的应用:云服务和分布式应用的运行规模都是不可预测的,Wavefront 可以有效监控各种规模的云服务和应用,并支持它们的弹性扩展。
- 高速数据采样:提供云服务的容器在需要时被创建,用完后又马上删除,传统的定时采样模式无法满足这种新一代应用的监控需求。Wavefront 专门为云原生应用而设计,轻松支持每秒钟一百万次以上的数据采样。
- 自助式的指标分析:传统的监控平台仅为管理员服务,而 Wavefront 对所有的员工开放,每个人都可以利用 Wavefront 平台对采集到的数据进行分析,这种协作式的工作模式可以更好地发现问题,激励员工创新。
Wavefront 平台通过以下几种途径来采集数据:
- Wavefront Agent:Wavefront 为各种云服务和应用平台开发了采集数据的 Agent,Agent 再通过 Wavefront Proxy 来把数据上传到云端的 Wavefront 数据库。
- 被监控对象直接发送数据给 Wavefront:只需要把 Wavefront 提供的 Metrics Library 插入到被监控对象中,就能直接采集数据。
- 直接从云服务获得数据:对于 AWS、Google Cloud、Pivotal Cound Foundry 这些大型云服务平台,Wavefront 可以直接收集数据。
- 收集日志:Wavefront 也可以通过 TCP 或 FileBeat 日志工具等从日志中采集数据。
Wavefront 目前支持各种主流的云服务和应用平台,并且支持的平台还在快速增长,仅2018年1季度就增加了超过45个新的集成,你可以在 Wavefront 的在线文档上看到每个月新增的集成。所以,不要担心没有在下图中找到你需要的 logo,没准很快就会支持了。
Wavefront 应用实例
下面我们来看几个云存储服务商 Box 利用 Wavefront 进行系统监控和数据分析的实例,让大家对 Wavefront 的分析功能有一个直观的认识。
Box 的某一个服务需要访问公有云上的对象存储,下图中不同颜色的线条代表了提供同一服务的多台服务器。Box 采用了 anycast 的机制来实现负载均衡,但是整个服务的性能很糟糕。Box 通过对 Wavefront 收集的性能数据进行分析找出了问题的原因:用于实现 anycast 的网络服务并没有很好地做到负载均衡。在图的左侧我们可以看到:这些线条有比较大的差异、并且紫色线条所代表的服务器并没有得到充分利用,这意味着 anycast 没有起到均衡负载的作用。找到问题后,Box 立即进行了修复,修正后的性能结果显示几台服务器的性能曲线趋向于重合和一致,这表明负载均衡机制起作用了。如果没有一个恰当的工具的话,这种类型的问题可能需要花费几周的时间才能找到;但利用 Wavefront,Box 的工程师在一天内就定位了问题。
Wavefront 通过数据分析快速找出问题所在,事半功倍。
接下来是一个操作系统打补丁的例子,Box 的安全规范要求及时为操作系统打上各种安全补丁。所以一旦有新的安全漏洞被发现,运营团队就要及时地给上万台服务器打上安全补丁。某一位团队成员被分配到这一项目时利用 Wavefront 创建了这一指标 (Metrics),用于记录需要打上的补丁总数。刚开始的时候,大概总共有4~5万个补丁需要打;但是随着补丁数量的增长,项目团队的工作逐渐滞后,累积的未打补丁也越来越多,最终增长到了30万个。靠人力是无法按时完成这项工作了,所以他们找到了自动打补丁的方法,从4月开始,累积的补丁数开始直线下降,直到7月下降为零。这个图表记录的是历史的真实数据,用非常直观的方法向管理团队展示了项目团队的工作成绩。
Wavefront 用数据说话,让人真正信服。
下面这个例子来自于 Box 中一个跨部门的全球性能优化项目,某位高层领导要求产品经理提供项目决策流程的一个汇报,这位产品经理于是从 Wavefront 中抓取了这样一份图表,最后这份报告在 CEO 参加的高管会议上被分享了。这份图表到底揭示了一个什么信息呢?这份图表显示的是关于 Box 服务的性能,其中有三条线, 代表了三种性能结果:
- 蓝色的是标准的 Box 服务,大概的服务延迟是 1.5 左右;
- 绿色的是某一个迭代的结果,但是性能反而稍微变差了,延迟上升到 1.8 左右;
- 紫色的是最新的优化结果,把服务延迟从 1.5 降低到 0.5 左右,可谓效果显著。