public class ZipkinClient { public static void Init() { TraceManager.SamplingRate = 1.0f; // 设置采样率(1.0表示100%) var logger = new NlogLogger(); var sender = new HttpZipkinSender("http://127.0.0.1:9411/api/v2/spans", "application/json"); var tracer = new ZipkinTracer(sender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); } }
上面是初始化zipkin
我在下面的AOP拦截器中执行下面代码,虽然是执行了,但是zipkin数据库里面有数据。
public class ZipkinAspect: OnMethodBoundaryAspect { public override void OnEntry(MethodExecutionArgs args) { var trace = Trace.Create(); trace.Record(Annotations.ClientSend()); trace.Record(Annotations.Rpc("client")); trace.Record(Annotations.Tag("mytag", "spanFrist")); trace.Record(Annotations.ServiceName("dotnetManual")); trace.Record(Annotations.ClientRecv()); args.MethodExecutionTag = trace; Console.WriteLine($"Entered method: {args.Method.Name}"); } public override void OnExit(MethodExecutionArgs args) { var trace = args.MethodExecutionTag as Trace; trace.Record(Annotations.ClientSend()); trace.Record(Annotations.Rpc("client")); trace.Record(Annotations.Tag("mytag", "spanFrist")); trace.Record(Annotations.ServiceName("dotnetManual")); trace.Record(Annotations.ClientRecv()); } }
zipkin服务是在windows下面执行的
java -jar zipkin-server-3.5.0-exec.jar –STORAGE_TYPE=mysql –MYSQL_HOST=127.0.0.1 –MYSQL_TCP_PORT=3306 –MYSQL_DB=zipkin –MYSQL_USER=root –MYSQL_PASS=1234
很奇怪,是我配置有错误还是代码有问题呢