目录
sleuth:
源码:
信息:
原理:
采样率:
附加信息:
zipkin
源码:
信息:
原理:
Log plugins
实现
作用:
性能:
缺点:
参考资料:
内容是在我球的docs上直接复制过来的,懒得写两份,资源缺少的留言,我发你
spring-cloud-starter-sleuth: 英文名是侦探,它的功能是在项目中自动为日志加入Tag与序列号
https://github.com/spring-cloud/spring-cloud-sleuth
https://spring.io/projects/spring-cloud-sleuth
调用侧请求中加入额外的Span序列号等上下文信息放入Header中(通过注入Feign定制Client实现)
被调用侧通过全局Filter模拟AOP记录执行情况,计算执行情况与耗时,并存入定制的ByteBoundedQueue队列中,然后通过HTTP等将信息异步发送到Zipkin收集器中
Zipkin收集器通过UI显示调用详情
其中添加了如下组件
如果使用spring-cloud-sleuth-zipkin或spring-cloud-sleuth-stream,PercentageBasedSampler是默认的(默认值是0.1),你可以使用spring.sleuth.sampler.percentage配置输出
用户可以使用span tags定制关键字,为了限制span数据量,一般一个HTTP请求只会被少数元数据标记,例如status code、host以及URL,用户可以通过配置spring.sleuth.keys.http.headers(一系列头名称)添加request headers。
来自Twitte的分布式日志收集工具,分为上传端(spring-cloud-starter-zipkin,集成到项目中)与服务端(独立部署,默认将数据存到内存中)
注意: Zipkin仅对RPC通信过程进行记录,注意它与业务代码日志是无关的,如果你希望找到一款LogAppender来分析所有Log4j留下的日志,那么建议还是使用Kakfa+ELK这种传统的方法来实现。
https://github.com/apache/incubator-zipkin
https://zipkin.io/
Zipkin Server主要包括四个模块:
(1)Collector 接收或收集各应用传输的数据
(2)Storage 存储接受或收集过来的数据,当前支持Memory,MySQL,Cassandra,ElasticSearch等,默认存储在内存中。
(3)API(Query) 负责查询Storage中存储的数据,提供简单的JSON API获取数据,主要提供给web UI使用
(4)Web 提供简单的web界面
logback指定数据源和数据格式(此处有坑,一般不会直接将日志发送至es,而是保存至本地备份)
127.0.0.1:5000
{"serviceName": "****-service"}
统计网络延时:
sr减去cs时间戳便可得到网络延迟(意味着路由端也要接入springcloud)
服务端处理时间:
ss减去sr时间戳便可得到服务端需要的处理请求时间
cs:Client Sent
sr:Server Received
ss:Server Sent
cr:Client Received
1.在springcloud中强依赖与spring-cloud-starter-zipkin
org.springframework.cloud
spring-cloud-starter-zipkin
对于没有pom未引用的,dependencies中无trace
2.zipkin只能统计接口级别的信息。
sleuth:
http://docs.springcloud.cn/user-guide/sleuth/
https://miao1007.github.io/gitbook/eureka/third/sleuth-log-collector.html
https://wu-sheng.github.io/me/articles/metrics-tracing-and-logging
https://yq.aliyun.com/articles/78128?spm=a2c4e.11153940.blogrightarea78144.12.bc0e5f00k57Xv3
http://www.ityouknow.com/springcloud/2018/02/02/spring-cloud-sleuth-zipkin.html
zipkin:
https://zipkin.io/pages/architecture.html
dapper:
https://ai.google/research/pubs/pub36356
elk:
https://www.elastic.co/cn/blog/a-practical-introduction-to-logstash