-------------------skywalking-------------
?工作原理?(客户端字节码注入探针+skywalking+ES)
- 我们最终是将数据存储在Es中的,但是直接和数据打交道的是Collector。
- 我们客户端是通过Agent,与Collector相连接,然后Collector将数据存储在Es中。
- 我们的监控页面是连接的Collector,Collector从Es中将数据查询出来。
一、客户端
参考:https://www.meiwen.com.cn/subject/ugjzsqtx.html
收集过程:
发送至collector过程:
agent内部缓存维护了一个生产消费者,agent生产者收集数据时将生产的数据按分区放到缓存中,agent消费者用多线程消费数据,将缓存的数据封装成grpc对象发送给collector
?如何搭建?
安装ES-存数据
安装服务器后台Collector-监控服务器--连接ES的IP
安装服务器UI管理台-可视化工具--连接Collector的IP
集成客户端Agent-通过注解加入监控--连接Collector的IP
--------------skywalking与zipkin的区别---------------------
1)Skywalking优点:
支持多种插件,UI功能较强,(韩国的Pinpoint只支持HBase)
采用java探针,字节码注入原理(1.修改字节码class、2.加载新到字节码、3.替换旧的字节码),
接入端无代码侵入
方法级切面监控--监控更细腻
skywalking的探针对吞吐量的影响最小
链路信息生产者不同---skywalking是由Agent的本地生产者放入本地一个缓存里,它就结束了,所以速度快。
链路信息消费者收集途径不同---skywalking是由Agent的本地消费者开启多线程把缓存的链路信息读出来,通过grpc发往Collector所在skywalking服务器,由skywalking服务器里的Collector存进ES里
UI界面类似---在UI界面访问skywalking服务器去读取ES的数据
服务器布署类似---运行skywalking服务器的jar包,启动服务器(java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800 -jar 你的业务系统app.jar)
2)Zipkin优点:
轻量,使用部署简单(拦截请求,发送(HTTP,mq)数据至zipkin服务)
接口级监控
zipkin的探针对吞吐量的影响最居中
缺点:对代码有侵入性
链路信息生产者不同---Zipkin需要由Sleuth(生产者)在本地收集事件Trace ID等链路信息,然后放入MQ,它就结束了,所以速度快。
链路信息消费者收集途径不同---Zipkin是由Zipkin服务器里的Collector从MQ读出来,然后存进ES里
UI界面类似---在UI界面访问Zipkin服务器去读取ES的数据
服务器布署类似---运行Zipkin服务器的jar包,启动服务器