链路追踪-skywalking
1.skywalking是啥东西?
官方答复:分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
个人简单理解:应用性能监控,APM,类似听云APM等工具,哈哈。
2.那么,skywalking主要有哪些功能呢,如下所示
1)多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
2)多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
3)轻量高效。无需大数据平台,和大量的服务器资源。
4)模块化。UI、存储、集群管理都有多种机制可选。
5)支持告警。
6)优秀的可视化解决方案。
3.skywalking整体架构如下(摘自官方网站)
如上,Skywalking的整个架构,分成上、下、左、右四部分:
考虑到让描述更简单,我们舍弃掉 Metric 指标相关,而着重在 Tracing 链路相关功能。
1)上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
2)下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
3)右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
4)左部分 SkyWalking UI :负责提供控台,查看链路等等。
4.skywalking安装部署和配置
安装完成后,登录web界面如下,默认是8080服务端口。