skywalking 开篇

249 阅读4分钟

什么是APM系统? 官方地址

*. 随着微服务架构的流行,一次请求往往需要涉及到多个服务,因此服务性能监控和排查就变得更复杂:
   1. 不同的服务可能由不同的团队开发、甚至可能使用不同的编程语言来实现
   2. 服务有可能布在了几千台服务器,横跨多个不同的数据中心
 *. 需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是APM系统,
 全称是(Application Performance Monitor,当然也有叫 Application Performance Management tools)
 *. AMP最早是谷歌公开的论文提到的 Google Dapper。Dapper是Google生产环境下的分布式跟踪系统,
 自从Dapper发展成为一流的监控系统之后,给google的开发者和运维团队帮了大忙,所以谷歌公开论文分享了Dapper。

OpenTracing 衍生出来 官方地址

为了统一APM 系统 形成一个规范推出了 OpenTracing 标准。OpenTracing 通过提供平台无关、厂商无关的 API,
 帮助开发人员能够方便地添加(或更换)追踪系统。

APM 当前流行的框架

1. Zipkin:由Twitter公司开源,开放源代码分布式的跟踪系统,用于收集服务的定时数据,以解决微服务架构中的延迟问题,
包括:数据的收集、存储、查找和展现。
2. Pinpoint:一款对Java编写的大规模分布式系统的APM工具,由韩国人开源的分布式跟踪组件。
3. Skywalking:国产的优秀APM组件,是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。

什么是skywalking 官方地址

一个开放源代码的可观察性平台,用于收集,分析,聚合和可视化来自服务和云本机基础结构的数据。SkyWalking提供了一种简便的方法来维护
您的分布式系统的清晰视图,即使在整个云中也是如此。它是一种现代的APM,专门为基于云的基于容器的分布式系统而设计。
说明一下为什么选择skywalking 因为是国人开源的产品性能比较。基于字节码编程。性能更加优秀,skywalking的探针对吞吐量的影响最小

场景应用

随着微服务的普及,现在企业服务大幅度的招人,都是会问微服务框架微服务架构系统会被拆分若干个子服务,子服务又会有若干个集群部署在非常多的服务里面
    
    微服务的好处。每个微服务基本上都是各自独立的项目(project),而对应各自独立项目的研发团队基本上也是独立对应,这样的结构保证了微服务的并行研发,并且各自快速迭代。同时也符合设计模式的单一职责。那么随着微服务的诞生,也会带来一些问题。比如服务的。系统的运行状态的监控系统,系统行为、系统的性能,系统出现故障时,发现、记录问题、告警,从而帮助开发人员快速发现问题、定位问题。根据系统的运行状态,做出一些预判行为等等一些。这些随着机器的增加会大大的增加复杂度。

微服务系统的监控手段

1. Logging&Metrics&Tracing  日志 监控 链路追踪

    *. Logging 就是记录系统的打印的日志,根据日志的情况去分析排查定位问题。这方面比较好的elk 
    *. Metrics 翻译过来就是“度量” ,在微服务中系统某个指标给予一个可量化程度的测量比如QPS。常见的监控框架Promethus、Open-Falcon等等一系列
    *. Tracing 分布式链路追踪,微服务体系中一个请求会经历N个服务的处理调用。整个链路就可能非常的长,从中定位问题就是一件非常复杂的事情。从而分布式链路追踪衍生出来。分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等

谷歌在 2010 年 4 月发表了一篇论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》介绍了分布式追踪的概念。之后雨后春竹般不断出现各种分布式链路追踪系统。比较熟知的有CAT、Zipkin、Pinpoint、SkyWalking。还有各个大厂使用的Google的Dapper,Twitter的zipkin,淘宝的鹰眼,新浪的Watchman,京东的Hydra等。

参考文档地址