参考资料
https://zipkin.io/
https://github.com/openzipkin/zipkin/
https://github.com/d-collab/zipkin.net
搭建环境
CentOS 7.X
Java 8 SDK
zipkin官网有三种安装方式可以参考
Docker
docker run -d -p 9411:9411 openzipkin/zipkin
Java
如果你已经拥有Java8的环境可以如下安装
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
源码安装
git clone https://github.com/openzipkin/zipkin
cd zipkin
./mvnw -DskipTests --also-make -pl zipkin-server clean installjava-jar ./zipkin-server/target/zipkin-server-*exec.jar
安装好之后访问下地址看下Zipkin效果
.NetCore中怎么来使用Zipkin
首先添加如下2个nuget包
为了不使Configure方法太过臃肿,我这里扩展下需要用到的IApplicationBuilder接口
在Configure中注入IApplicationLifetime 、ILoggerFactory两个对象
app.UserZipkinCore(applicationLifetime, loggerFactory);
public static void UserZipkinCore(thisIApplicationBuilder app,IApplicationLifetime applicationLifetime,ILoggerFactory loggerFactory)
{
applicationLifetime.ApplicationStarted.Register(()=>{
TraceManager.SamplingRate= 1.0f;var logger = new TracingLogger(loggerFactory, "zipkin4net");var httpsender = new HttpZipkinSender("http://ipaddress:9411", "application/json");var tracer = new ZipkinTracer(httpsender, newJSONSpanSerializer());
TraceManager.RegisterTracer(tracer);
TraceManager.Start(logger);
});
applicationLifetime.ApplicationStopped.Register(()=>TraceManager.Stop());
app.UseTracing("IdentityServer4");
}
SamplingRate:跟踪日志的颗粒度
UseTracing:在Zipkin上新建的服务名称
启动引用程序查看Zipkin中的记录
关于Zipkin的界面功能就不做特别介绍一看都懂