public ZipkinClient(ITraceProvider traceProvider, string requestName, IMDLogger logger, IZipkinConfig zipkinConfig, ISpanCollectorBuilder spanCollectorBuilder) { this.logger = logger; isTraceOn = true; if ( logger == null || IsConfigValuesNull(zipkinConfig) || !IsConfigValuesValid(zipkinConfig) || !IsTraceProviderValidAndSamplingOn(traceProvider)) { isTraceOn = false; } if (isTraceOn) { try { spanCollector = spanCollectorBuilder.Build(zipkinConfig.ZipkinServerName, int.Parse(zipkinConfig.ZipkinServerPort), int.Parse(zipkinConfig.SpanProcessorBatchSize)); spanCollector.Start(); spanTracer = new SpanTracer(spanCollector, zipkinConfig.ServiceName, new ServiceEndpoint()); this.requestName = requestName; this.traceProvider = traceProvider; } catch (Exception ex) { logger.Error("Error Building Zipkin Client Provider", ex); isTraceOn = false; } } }
public void CTOR_WithNullLogger() { var zipkinConfigStub = CreateZipkinConfigWithValues(fixture.Create<string>(), "123", "123", fixture.Create<string>(), "goo,bar", "0.5"); spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); spanCollectorBuilder.Expect(x => x.Build(Arg<string>.Is.Anything, Arg<int>.Is.Anything, Arg<int>.Is.Anything)).Return(spanCollectorStub); var zipkinClient = new ZipkinClient(traceProvider, requestName, logger, zipkinConfigStub, spanCollectorBuilder); Assert.IsFalse(zipkinClient.isTraceOn); }
public void CTOR_WithNullWhiteListCsv() { traceProvider.Expect(x => x.TraceId).Return(fixture.Create<string>()); traceProvider.Expect(x => x.IsSampled).Return(true); var zipkinConfigStub = CreateZipkinConfigWithValues(fixture.Create<string>(), "123", "123", fixture.Create<string>(), null , "0.5"); spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); spanCollectorBuilder.Expect(x => x.Build(Arg<string>.Is.Anything, Arg<int>.Is.Anything, Arg<int>.Is.Anything)).Return(spanCollectorStub); var zipkinClient = new ZipkinClient(traceProvider, requestName, logger, zipkinConfigStub, spanCollectorBuilder); Assert.IsTrue(zipkinClient.isTraceOn); }
private ITracerClient SetupZipkinClient() { spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); spanCollectorBuilder.Expect(x => x.Build(Arg<string>.Is.Anything, Arg<int>.Is.Anything, Arg<int>.Is.Anything)).Return(spanCollectorStub); traceProvider.Expect(x => x.TraceId).Return(fixture.Create<string>()); traceProvider.Expect(x => x.IsSampled).Return(true); return new ZipkinClient(traceProvider, requestName, logger,CreateZipkinConfigWithDefaultValues(), spanCollectorBuilder); }
public void CTOR_Collector_Exception() { var zipkinConfigStub = CreateZipkinConfigWithDefaultValues(); traceProvider.Expect(x => x.TraceId).Return(fixture.Create<string>()); traceProvider.Expect(x => x.IsSampled).Return(true); spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); var expectedException = new Exception(); spanCollectorBuilder.Expect(x => x.Build(Arg<string>.Is.Anything, Arg<int>.Is.Anything, Arg<int>.Is.Anything)).Return(spanCollectorStub); spanCollectorStub.Expect(x => x.Start()).Throw(expectedException); var zipkinClient = new ZipkinClient(traceProvider, requestName, logger,zipkinConfigStub, spanCollectorBuilder); Assert.IsFalse(zipkinClient.isTraceOn); }
public void CTOR_WithTraceIdNullOrEmpty() { var zipkinConfigStub = CreateZipkinConfigWithDefaultValues(); traceProvider.Expect(x => x.TraceId).Return(string.Empty); traceProvider.Expect(x => x.IsSampled).Return(true); spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); spanCollectorBuilder.Expect(x => x.Build(Arg<string>.Is.Anything, Arg<int>.Is.Anything, Arg<int>.Is.Anything)).Return(spanCollectorStub); var zipkinClient = new ZipkinClient(traceProvider, requestName, logger,zipkinConfigStub, spanCollectorBuilder); Assert.IsFalse(zipkinClient.isTraceOn); }
public void CTOR_WithNullTraceProvider() { var zipkinConfigStub = CreateZipkinConfigWithDefaultValues(); spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); spanCollectorBuilder.Expect(x => x.Build(Arg<string>.Is.Anything, Arg<int>.Is.Anything, Arg<int>.Is.Anything)).Return(spanCollectorStub); var zipkinClient = new ZipkinClient(null, requestName, logger,zipkinConfigStub, spanCollectorBuilder); Assert.IsFalse(zipkinClient.isTraceOn); logger.AssertWasCalled(x => x.Error(Arg<string>.Is.Anything)); }
public void Init() { fixture = new Fixture(); spanCollectorStub = MockRepository.GenerateStub<SpanCollector>(MockRepository.GenerateStub<IClientProvider>(), 0); zipkinEndpointStub = MockRepository.GenerateStub<ServiceEndpoint>(); }