sleuth+zipkin 调用追踪全量日志方案


spring cloud中的zipkin日志统计是由sleuth客户端和zipkin服务器组成。 sleuth收集客端trace,通过mq将trace发送到zipkin服务器。

zipkin 做持久化和查询展示功能。常用kafka+zk集群作为mq将信息由客户端发往服务器,elasticsearch用于trace存储。

存在以下问题:

1.大量trace发往zipkin很容易崩溃,通常不能做全量记录。

2.如果zipkin崩溃或者mq出现问题会导致trace丢失。

解决:

a.不引入mq依赖,使用日志记录调用信息。

    @Bean
    public Reporter<Span> reporter(){
        return span ->  { logger.info(span.toString()); }; //输出到trace日志文件
    }

    @Bean
    public Sampler sleuthTraceSampler() {
        return Sampler.ALWAYS_SAMPLE;
    } //全量记录

 

b.使用elk日志方案将日志导入到trace专用索引。

c.zipkin对数据包括收集和查询展示两模块。我正常配置zipkin+es,就ok了。只是没有不使用收集模块。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM