public Tracer.Builder GetTracerBuilder() { if (ReporterConfig == null) { ReporterConfig = new ReporterConfiguration(_loggerFactory); } if (SamplerConfig == null) { SamplerConfig = new SamplerConfiguration(_loggerFactory); } if (_codecConfig == null) { _codecConfig = new CodecConfiguration(new Dictionary <IFormat <ITextMap>, List <Codec <ITextMap> > >()); } if (_metricsFactory == null) { _metricsFactory = NoopMetricsFactory.Instance; } IMetrics metrics = new MetricsImpl(_metricsFactory); IReporter reporter = ReporterConfig.GetReporter(metrics); ISampler sampler = SamplerConfig.CreateSampler(_serviceName, metrics); Tracer.Builder builder = new Tracer.Builder(_serviceName) .WithLoggerFactory(_loggerFactory) .WithSampler(sampler) .WithReporter(reporter) .WithMetrics(metrics) .WithTags(_tracerTags); _codecConfig.Apply(builder); return(builder); }
public static IServiceCollection AddJaeger(this IServiceCollection services) { services.AddSingleton <ITracer>(serviceProvider => { var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var senderConfig = new SenderConfiguration(loggerFactory) .WithAgentHost(Environment.GetEnvironmentVariable("JAEGER_AGENT_HOST")) .WithAgentPort(Convert.ToInt32(Environment.GetEnvironmentVariable("JAEGER_AGENT_PORT"))); SenderConfiguration.DefaultSenderResolver = new SenderResolver(loggerFactory) .RegisterSenderFactory <ThriftSenderFactory>(); var config = Configuration.FromEnv(loggerFactory); var samplerConfiguration = new SamplerConfiguration(loggerFactory) .WithType(ConstSampler.Type) .WithParam(1); var reporterConfiguration = new ReporterConfiguration(loggerFactory) .WithSender(senderConfig) .WithLogSpans(true); var tracer = config .WithSampler(samplerConfiguration) .WithReporter(reporterConfiguration) .GetTracer(); GlobalTracer.Register(tracer); return(tracer); }); return(services); }
public void TestSamplerConstInvalidParam() { SetProperty(Configuration.JaegerSamplerType, ConstSampler.Type); SetProperty(Configuration.JaegerSamplerParam, "X"); SamplerConfiguration samplerConfig = SamplerConfiguration.FromEnv(_loggerFactory); Assert.Equal(ConstSampler.Type, samplerConfig.Type); Assert.Null(samplerConfig.Param); }
public void TestRateLimitingSampler() { SamplerConfiguration samplerConfiguration = new SamplerConfiguration(_loggerFactory) .WithType(RateLimitingSampler.Type); ISampler sampler = samplerConfiguration.CreateSampler("name", new MetricsImpl(NoopMetricsFactory.Instance)); Assert.True(sampler is RateLimitingSampler); }
public void TestProbabilisticSampler() { SamplerConfiguration samplerConfiguration = new SamplerConfiguration(_loggerFactory) .WithType(ProbabilisticSampler.Type); ISampler sampler = samplerConfiguration.GetSampler("name", new MetricsImpl(NoopMetricsFactory.Instance)); Assert.True(sampler is ProbabilisticSampler); }
public TraceService(ILoggerFactory loggerFactory, IOptions <JaegerOptions> options) { this.loggerFactory = loggerFactory; var senderConfiguration = new Configuration.SenderConfiguration(loggerFactory).WithAgentHost(options.Value.Host); this.samplerConfiguration = new Configuration.SamplerConfiguration(loggerFactory).WithType(ConstSampler.Type).WithParam(1); this.reporterConfiguration = new Configuration.ReporterConfiguration(loggerFactory).WithLogSpans(true).WithSender(senderConfiguration); this.tracers = new ConcurrentDictionary <string, ITracer>(); }
public void TestUnknownSampler() { SamplerConfiguration samplerConfiguration = new SamplerConfiguration(_loggerFactory); samplerConfiguration.WithType("unknown"); Assert.Throws <NotSupportedException>(() => new Configuration("name", _loggerFactory) .WithSampler(samplerConfiguration) .GetTracer()); }
/// <summary> /// Returns <see cref="Configuration"/> object from environmental variables. /// </summary> public static Configuration FromEnv(ILoggerFactory loggerFactory) { ILogger logger = loggerFactory.CreateLogger <Configuration>(); return(new Configuration(GetProperty(JaegerServiceName), loggerFactory) .WithTracerTags(TracerTagsFromEnv(logger)) .WithReporter(ReporterConfiguration.FromEnv(loggerFactory)) .WithSampler(SamplerConfiguration.FromEnv(loggerFactory)) .WithCodec(CodecConfiguration.FromEnv(loggerFactory))); }
/// <summary> /// Returns <see cref="Configuration"/> object from a Configuration. /// </summary> public static Configuration FromIConfiguration(ILoggerFactory loggerFactory, IConfiguration configuration) { ILogger logger = loggerFactory.CreateLogger <Configuration>(); return(new Configuration(GetProperty(JaegerServiceName, logger, configuration), loggerFactory) .WithTracerTags(TracerTagsFromIConfiguration(logger, configuration)) .WithTraceId128Bit(GetPropertyAsBool(JaegerTraceId128Bit, logger, configuration).GetValueOrDefault(false)) .WithReporter(ReporterConfiguration.FromIConfiguration(loggerFactory, configuration)) .WithSampler(SamplerConfiguration.FromIConfiguration(loggerFactory, configuration)) .WithCodec(CodecConfiguration.FromIConfiguration(loggerFactory, configuration))); }
public static ITracer Init(string service) { var loggerFactory = NullLoggerFactory.Instance; var samplerConfig = SamplerConfiguration.FromEnv(loggerFactory) .WithType(ConstSampler.Type) .WithParam(1); var reporterConfig = ReporterConfiguration.FromEnv(loggerFactory); var config = new Jaeger.Configuration(service, loggerFactory) .WithSampler(samplerConfig) .WithReporter(reporterConfig); return(config.GetTracer()); }
public void TestDeprecatedSamplerManagerHostPort() { ILoggerFactory loggerFactory = Substitute.For <ILoggerFactory>(); ILogger logger = Substitute.For <ILogger>(); loggerFactory.CreateLogger <Configuration>().Returns(logger); SetProperty(Configuration.JaegerSamplerManagerHostPort, HttpSamplingManager.DefaultHostPort); SamplerConfiguration samplerConfiguration = SamplerConfiguration.FromEnv(loggerFactory); ISampler sampler = samplerConfiguration.GetSampler("name", new MetricsImpl(NoopMetricsFactory.Instance)); Assert.True(sampler is RemoteControlledSampler); loggerFactory.Received(1).CreateLogger <Configuration>(); logger.Received(1).Log(LogLevel.Warning, Arg.Any <EventId>(), Arg.Any <object>(), null, Arg.Any <Func <object, Exception, string> >()); }
public void TestSamplerConstFromIConfiguration() { var arrayDict = new Dictionary <string, string> { { Configuration.JaegerSamplerType, ConstSampler.Type }, { Configuration.JaegerSamplerParam, "1" } }; var configuration = new ConfigurationBuilder() .AddInMemoryCollection(arrayDict) .Build(); SamplerConfiguration samplerConfig = SamplerConfiguration.FromIConfiguration(_loggerFactory, configuration); Assert.Equal(ConstSampler.Type, samplerConfig.Type); Assert.Equal(1, samplerConfig.Param); }
public Tracer.Builder GetTracerBuilder() { if (ReporterConfig == null) { ReporterConfig = new ReporterConfiguration(_loggerFactory); } if (SamplerConfig == null) { SamplerConfig = new SamplerConfiguration(_loggerFactory); } if (CodecConfig == null) { CodecConfig = new CodecConfiguration(_loggerFactory); } if (_metricsFactory == null) { _metricsFactory = NoopMetricsFactory.Instance; } IMetrics metrics = new MetricsImpl(_metricsFactory); IReporter reporter = ReporterConfig.GetReporter(metrics); ISampler sampler = SamplerConfig.GetSampler(ServiceName, metrics); Tracer.Builder builder = new Tracer.Builder(ServiceName) .WithLoggerFactory(_loggerFactory) .WithSampler(sampler) .WithReporter(reporter) .WithMetrics(metrics) .WithTags(_tracerTags); if (UseTraceId128Bit) { builder = builder.WithTraceId128Bit(); } CodecConfig.Apply(builder); return(builder); }
public Configuration WithSampler(SamplerConfiguration samplerConfig) { SamplerConfig = samplerConfig; return(this); }