本文已参与腾源会发起的「开源摘星计划」
网上看到许多解析skywalking的源码读解,本人很受用。但都是集中在对java agent插件的原理的讲解。而我工作中需要模拟skywalking后台进行链路数据处理。这方面就是空白,今天我就来尝试读解skywalking后台源码,也就是skywalking oap,并对其进行拆解利用。形成自己的链路数据采集/存储/展示能力。通过本文将展示skywalking8.7.0的后台数据处理过程,以及怎样形成自己的链路数据处理能力。
总体来看,我们首先利用skyalking的java agent采集链路信息,保持原装不动。采集来的信息由kafka进行缓存。Skywalking oap读取kafka并存储到elasticsearch7中。由于Skywalking体系中,采集了许多agent的管理信息/metrics/健康检查等,所以需要一套原始的Skywalking oap运行管理多个agent。这是原始的处理流程。
而我们自己的模拟链路采集应用,则是消费kafka中skywalking-segments主题中的链路数据。Skywalking oap同时也会去消费,互不相干。
- 下