1.Skywalking
Skywalking是国产开源并且加入了Apache的一个分布式链路追踪框架,为分布式应用程序提供性能监控、链路追踪、可视化等服务。
常见的链路追踪框架还有:Spring Cloud Zipkin、Pinpoint、CAT等。skywalking的优势是利用了Java的Agent探针技术使得效率十分高。
Skywalking通过探针技术来监控应用数据。并且支持多种语言的探针技术,例如Java、.Net、NodeJs等,并且提供了UI可视化平台,操作上手难度低。
2.Skywalking的结构组成
- Agent:探针技术负责从应用系统中收集链路跟踪信息,发送给OAP服务。
- OAP服务:负责接收Agent发过来的Tracing数据,然后进行聚合、存储分析,提供查询、报表功能。
- Storage:负责存储Agent发给OAP的Tracing数据,持久化到MySQL或者其它数据库或者ES。
- UI:可视化服务。
Skywalking支持3种探针技术:
- Agent:底层基于ByteBuddy字节码增强技术,通过对JVM启动参数-agent来拦截类的方法获取数据。
- SDK集成:应用程序中耦合式地调用AIP来上报数据,这种方式侵入式太大。
- Service Mesh:通过服务网格的网络代理来收集数据。