Beispiel #1
0
        public void TestResolveWithDefaultConfigurationWithoutFactoriesReturnsNoopSender()
        {
            var senderResolver = new SenderResolver(_loggerFactory);

            var sender = senderResolver.Resolve();

            Assert.IsType <NoopSender>(sender);
        }
        public ConfigurationTests()
        {
            _loggerFactory          = NullLoggerFactory.Instance;
            _flexibleSenderResolver = new SenderResolver(_loggerFactory)
                                      .RegisterSenderFactory(new FlexibleSenderFactory(FACTORY_NAME_TEST1))
                                      .RegisterSenderFactory(new FlexibleSenderFactory(FACTORY_NAME_TEST2));

            ClearProperties();
        }
            public SenderConfiguration(ILoggerFactory loggerFactory)
            {
                _loggerFactory = loggerFactory;
                _logger        = loggerFactory.CreateLogger <Configuration>();

                if (DefaultSenderResolver == null)
                {
                    DefaultSenderResolver = new SenderResolver(_loggerFactory);
                }
            }
Beispiel #4
0
        public void TestResolveWithTest1SelectedWithoutFactoriesReturnsNoopSender()
        {
            var senderResolver = new SenderResolver(_loggerFactory);
            var configuration  = new Configuration.SenderConfiguration(_loggerFactory)
                                 .WithSenderFactory(FACTORY_NAME_TEST1);

            var sender = senderResolver.Resolve(configuration);

            Assert.IsType <NoopSender>(sender);
        }
            /// <summary>
            /// Returns a sender if one was given when creating the configuration, or attempts to create a sender based on the
            /// configuration's state.
            /// </summary>
            /// <returns>The sender passed via the constructor or a properly configured sender.</returns>
            public virtual ISender GetSender()
            {
                if (SenderResolver == null)
                {
                    SenderResolver = DefaultSenderResolver;
                }
                if (Sender == null)
                {
                    Sender = SenderResolver.Resolve(this);
                }

                return(Sender);
            }
Beispiel #6
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();

            // Use "OpenTracing.Contrib.NetCore" to automatically generate spans for ASP.NET Core, Entity Framework Core, ...
            // See https://github.com/opentracing-contrib/csharp-netcore for details.
            services.AddOpenTracing();

            // Adds the Jaeger Tracer.
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                // string serviceName = serviceProvider.GetRequiredService<IWebHostEnvironment>().ApplicationName;

                // This will log to a default localhost installation of Jaeger.
                //var tracer = new Tracer.Builder(serviceName)
                //    .WithSampler(new ConstSampler(true))
                //    .Build();

                // var loggerFactory = new LoggerFactory(); // get Microsoft.Extensions.Logging ILoggerFactory
                // var serviceName = "testService";

                //Jaeger.Configuration.SenderConfiguration.DefaultSenderResolver = new SenderResolver(loggerFactory)
                //    .RegisterSenderFactory<ThriftSenderFactory>();
                ////Configuration config = new Configuration(serviceName, loggerFactory)
                ////    // .WithSampler(...)   // optional, defaults to RemoteControlledSampler with HttpSamplingManager on localhost:5778
                ////    .WithReporter(Jaeger.Configuration.ReporterConfiguration.FromEnv(loggerFactory)); // optional, defaults to RemoteReporter with UdpSender on localhost:6831 when ThriftSenderFactory is registered
                //Configuration config = Jaeger.Configuration.FromEnv(loggerFactory);

                //ITracer tracer = config.GetTracer().wi;

                //// Allows code that can't use DI to also access the tracer.
                //GlobalTracer.Register(tracer);

                var senderResolver = new SenderResolver(loggerFactory).RegisterSenderFactory <ThriftSenderFactory>();

                var senderConfiguration = new Configuration.SenderConfiguration(loggerFactory)
                                          .WithSenderResolver(senderResolver).WithEndpoint("http://192.168.1.34:14268/api/traces"); // optional, defaults to Configuration.SenderConfiguration.DefaultSenderResolver


                var reporterConfiguration = new Configuration.ReporterConfiguration(loggerFactory)
                                            .WithSender(senderConfiguration) // optional, defaults to UdpSender at localhost:6831 when ThriftSenderFactory is registered
                                            .WithLogSpans(true);             // optional, defaults to no LoggingReporter

                var tracer = new Configuration("campaignUI", loggerFactory)
                             .WithReporter(reporterConfiguration) // optional, defaults to RemoteReporter with UdpSender at localhost:6831 when ThriftSenderFactory is registered
                             .GetTracer();

                return(tracer);
            });
        }
Beispiel #7
0
        public void TestResolveWithTest2SelectedWithTest2FactoryReturnsFlexibleSender()
        {
            var configuration = new Configuration.SenderConfiguration(_loggerFactory)
                                .WithSenderFactory(FACTORY_NAME_TEST2);
            var senderResolver = new SenderResolver(_loggerFactory)
                                 .RegisterSenderFactory(_test2SenderFactory);

            var sender = senderResolver.Resolve(configuration);

            Assert.IsType <FlexibleSenderFactory.Sender>(sender);

            var flexibleSender = (FlexibleSenderFactory.Sender)sender;

            Assert.Equal(FACTORY_NAME_TEST2, flexibleSender.FactoryName);
            Assert.Equal(configuration, flexibleSender.SenderConfiguration);
        }
 public RemoteReporter Build()
 {
     if (_loggerFactory == null)
     {
         _loggerFactory = NullLoggerFactory.Instance;
     }
     if (_sender == null)
     {
         var senderResolver = new SenderResolver(_loggerFactory);
         _sender = senderResolver.Resolve();
     }
     if (_metrics == null)
     {
         _metrics = new MetricsImpl(NoopMetricsFactory.Instance);
     }
     return(new RemoteReporter(_sender, _flushInterval, _maxQueueSize, _metrics, _loggerFactory));
 }
 public SenderConfiguration WithSenderResolver(SenderResolver senderResolver)
 {
     SenderResolver = senderResolver;
     return(this);
 }