public BouncyService(ILogger <BouncyService> logger)
        {
            _logger = logger;

            var loggerFactory = LoggerFactory.Create(builder => {
                builder
                .AddConsole();
            });

            var serviceName    = Environment.GetEnvironmentVariable("JAEGER_SERVICE_NAME");
            var jaegerEndpoint = Environment.GetEnvironmentVariable("JAEGER_ENDPOINT");
            var sender         = new HttpSender(jaegerEndpoint);

            var reporter = new RemoteReporter.Builder()
                           .WithLoggerFactory(loggerFactory)
                           .WithMaxQueueSize(1000)
                           .WithFlushInterval(TimeSpan.FromSeconds(10))
                           .WithSender(sender)
                           .Build();

            _tracer = new Tracer.Builder(serviceName)
                      .WithSampler(new ConstSampler(true))
                      .WithLoggerFactory(loggerFactory)
                      .WithReporter(reporter)
                      .Build();
        }
Esempio n. 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddDbContext <UserDBContext>(options => options
                                                  .UseMySQL(Configuration.GetConnectionString("DefaultConnection")));
            services.AddTransient <IUserData, UserDataAccess>();
            // Adds the Jaeger Tracer.

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var jeagerurl = "jaeger-agent";
                var reporter  = new RemoteReporter.Builder()
                                .WithLoggerFactory(loggerFactory)
                                .WithSender(new UdpSender(jeagerurl, 6831, 0))
                                .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            //Adds Jaegar Service
            services.AddOpenTracing();
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddTransient <IOrderService, OrderService>();
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName           = Assembly.GetEntryAssembly().GetName().Name;
                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();
                ISampler sampler             = new ConstSampler(sample: true);

                var data     = Environment.GetEnvironmentVariable("Jagger_Endpoint");
                var endpoint = data == null ? "jaggerservice" : data;

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender(endpoint, 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);
                return(tracer);
            });
            services.AddOpenTracing();
        }
Esempio n. 4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            //Reference https://www.cnblogs.com/catcher1994/p/10662999.html

            // 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();

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                var loggerFactory = serviceProvider.GetService <ILoggerFactory>();
                var serviceName   = serviceProvider.GetRequiredService <IHostEnvironment>().ApplicationName;
                var reporter      = new RemoteReporter.Builder()
                                    .WithLoggerFactory(loggerFactory)
                                    //.WithSender(new HttpSender("192.168.132.105:14268"))
                                    .WithSender(new UdpSender("192.168.132.105", 6831, 0))
                                    .Build();
                //var reporter = new LoggingReporter(loggerFactory);

                var trace = new Tracer.Builder(serviceName)
                            .WithLoggerFactory(loggerFactory)
                            .WithReporter(reporter)
                            .WithSampler(new ConstSampler(true))
                            .Build();
                GlobalTracer.Register(trace);

                return(trace);
            });

            services.AddHttpClient();
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddDbContext <UserDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("UserDBConnection")));

            services.AddScoped <IUserManager, UserManager>();
            services.AddScoped <IUserDal, UserDal>();

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);
                var reporter     = new RemoteReporter.Builder().WithLoggerFactory(loggerFactory)
                                   .WithSender(new UdpSender("jaeger-agent", 6831, 0)).Build();

                ITracer tracer = new Tracer.Builder(serviceName).WithLoggerFactory(loggerFactory).
                                 WithSampler(sampler).WithReporter(reporter).Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                Environment.SetEnvironmentVariable("JAEGER", "localhost");


                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender(String.IsNullOrEmpty(Environment.GetEnvironmentVariable("JAEGER")) ? "" : Environment.GetEnvironmentVariable("JAEGER"), 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            services.AddOpenTracing();
            services.Add(new ServiceDescriptor(typeof(dbcontext), new dbcontext(Configuration.GetConnectionString("DefaultConnection"))));

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddHttpClient();
            services.AddScoped <IFetchOrderDetailService, FetchOrderDetailService>();

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender(Configuration.GetValue <string>("JaegerService:Host"), 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            services.AddOpenTracing();
        }
Esempio n. 8
0
        public static IServiceCollection AddJaeger(this IServiceCollection services)
        {
            var options = GetJaegerOptions(services);

            if (!options.Enabled)
            {
                var defaultTracer = DShopDefaultTracer.Create();
                services.AddSingleton(defaultTracer);
                return(services);
            }

            services.AddSingleton <ITracer>(sp =>
            {
                var loggerFactory = sp.GetRequiredService <ILoggerFactory>();

                var reporter = new RemoteReporter
                               .Builder()
                               .WithSender(new UdpSender(options.UdpHost, options.UdpPort, options.MaxPacketSize))
                               .WithLoggerFactory(loggerFactory)
                               .Build();

                var sampler = GetSampler(options);

                var tracer = new Tracer
                             .Builder(options.ServiceName)
                             .WithReporter(reporter)
                             .WithSampler(sampler)
                             .Build();

                GlobalTracer.Register(tracer);
                return(tracer);
            });

            return(services);
        }
Esempio n. 9
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            // configure DI for application services
            services.AddScoped <IUserBusiness, UserBusinessLogic>();
            services.AddTransient(_ => new NagpContext(Configuration["ConnectionStrings:DefaultConnection"]));

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender("jaeger-agent", 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
        }
Esempio n. 10
0
        public void ConfigureServices(IServiceCollection services)
        {
            //ÃüÃû¿Í»§¶Ë
            services.AddHttpClient("nameclient5000", c =>
            {
                c.BaseAddress = new Uri("http://localhost:5001/");
                var dir       = CreateInjectTracingSpanHeader();
                foreach (var item in dir)
                {
                    c.DefaultRequestHeaders.Add(item.Key, item.Value);
                }
            });
            services.AddControllers();

            // OpenTracing Tracer
            if (Configuration.GetSection("OpenTracing:Agent").Exists())
            {
                var agentHost          = Configuration.GetSection("OpenTracing:Agent").GetValue <string>("Host");
                var agentPort          = Configuration.GetSection("OpenTracing:Agent").GetValue <int>("Port");
                var agentMaxPacketSize = Configuration.GetSection("OpenTracing:Agent").GetValue <int>("MaxPacketSize");
                var reporter           = new RemoteReporter.Builder()
                                         .WithSender(new UdpSender(string.IsNullOrEmpty(agentHost) ? UdpSender.DefaultAgentUdpHost : agentHost,
                                                                   agentPort <= 100 ? UdpSender.DefaultAgentUdpCompactPort : agentPort,
                                                                   agentMaxPacketSize <= 0 ? 0 : agentMaxPacketSize))
                                         .Build();
                ITracer tracer = new Tracer.Builder(Assembly.GetEntryAssembly().GetName().Name) // service name
                                 .WithReporter(reporter)
                                 .WithSampler(new ConstSampler(true))                           // always send the span
                                 .Build();
                GlobalTracer.Register(tracer);
                // ×¢ÈëTracer
                services.AddSingleton(tracer);
            }
        }
Esempio n. 11
0
        public void Add(IServiceCollection services, IOptionsProvider optionsProvider)
        {
            var options = optionsProvider.GetForExtension <TracingOptions>("tracing");

            services.AddOpenTracing();
            services.AddSingleton(options);
            if (options.UseEmptyTracer)
            {
                var defaultTracer = DefaultTracer.Create();
                services.AddSingleton(defaultTracer);
                return;
            }

            services.AddSingleton <ITracer>(sp =>
            {
                var loggerFactory = sp.GetRequiredService <ILoggerFactory>();

                var reporter = new RemoteReporter.Builder()
                               .WithSender(new UdpSender(options.UdpHost, options.UdpPort, options.MaxPacketSize))
                               .WithLoggerFactory(loggerFactory)
                               .Build();

                var sampler = GetSampler(options);

                var tracer = new Tracer.Builder(options.ServiceName)
                             .WithLoggerFactory(loggerFactory)
                             .WithReporter(reporter)
                             .WithSampler(sampler)
                             .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            string JAEGER_SERVICE_NAME = Environment.GetEnvironmentVariable("JAEGER_SERVICE_NAME");
            string JAEGER_AGENT_PORT   = Environment.GetEnvironmentVariable("JAEGER_AGENT_PORT");
            string JAEGER_AGENT_HOST   = Environment.GetEnvironmentVariable("JAEGER_AGENT_HOST");

            services.AddOpenTracing();
            var sender = new Jaeger.Senders.Thrift.UdpSender(
                JAEGER_AGENT_HOST,
                int.Parse(JAEGER_AGENT_PORT),
                0
                );
            var remoteReporter = new RemoteReporter.Builder()
                                 .WithSender(sender)
                                 .Build();
            var sampler = new ConstSampler(true);
            var tracer  = new Jaeger.Tracer.Builder(JAEGER_SERVICE_NAME)
                          .WithReporter(remoteReporter)
                          .WithSampler(sampler)
                          .Build();

            GlobalTracer.Register(tracer);
            services.AddHttpClient();
            services.AddControllers();
        }
        public static IServiceCollection ConfigureJaeger(this IServiceCollection services, IConfiguration config)
        {
            services.AddMvc(options =>
            {
                options.Filters.AddService <TracingActionFilter>();
            });
            services.AddScoped <TracingActionFilter>();
            services.AddSingleton(serviceProvider =>
            {
                string serviceName = "IBank-Person";

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);
                var reporter     = new RemoteReporter.Builder().WithLoggerFactory(loggerFactory).WithSender(new UdpSender(config.GetValue <string>("JaegerHost"), 6831, 0)).Build();
                ITracer tracer   = new Tracer.Builder(serviceName)
                                   .WithLoggerFactory(loggerFactory)
                                   .WithReporter(reporter)
                                   .WithSampler(sampler)
                                   .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
            return(services);
        }
Esempio n. 14
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                var senderConfig = new SenderConfiguration(loggerFactory)
                                   .WithAgentHost("jaeger-agent")
                                   .WithAgentPort(5778)
                                   .WithEndpoint("http://collector:14268/api/traces");

                var reporter = new RemoteReporter.Builder().WithLoggerFactory(loggerFactory).WithSender(senderConfig.GetSender()).Build();

                ISampler sampler = new ConstSampler(sample: true);

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithReporter(reporter)
                                 .WithSampler(sampler)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
        }
Esempio n. 15
0
        private IReporter CreateJaegerReporter()
        {
            var reporter = new RemoteReporter.Builder(this.options)
                           .Build();

            return(reporter);
        }
Esempio n. 16
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddDbContext <ApplicationDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddScoped(typeof(IDbIntializer), typeof(DBInitializer));
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = serviceProvider.GetRequiredService <IWebHostEnvironment>().ApplicationName;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);


                string jaegerHost = Configuration.GetValue <string>("Values:jaeger-host");

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender(jaegerHost, 6831, 0)) // todo:
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
        }
Esempio n. 17
0
        public static Tracer CreateTracer(string endPoint, string serviceName)
        {
            var myLoggerFactory = GetLoggerFactory();

            var traceBuilder = new Tracer.Builder(serviceName)
                               .WithSampler(new ConstSampler(true))
                               .WithLoggerFactory(myLoggerFactory);

            //var loggerFactory = traceBuilder.LoggerFactory;
            var metrics = traceBuilder.Metrics;

            //try result: 16686:X 14268:OK
            var sender = new HttpSender(endPoint);

            var reporter = new RemoteReporter.Builder()
                           .WithLoggerFactory(myLoggerFactory)
                           .WithMetrics(metrics)
                           .WithSender(sender)
                           .Build();

            _theSpanReporter = GetMySpanReporter();
            var compositeReporter = new CompositeReporter(_theSpanReporter, reporter);

            var tracer = traceBuilder
                         .WithReporter(compositeReporter)
                         .Build();

            //set clock
            var storage = GetMySpanStorage();

            storage.GetClock = () => tracer.Clock.UtcNow();

            return(tracer);
        }
Esempio n. 18
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddScoped <IAggregatorService, AggregatorService>();
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = serviceProvider.GetRequiredService <IWebHostEnvironment>().ApplicationName;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);


                string jaegerHost = Configuration.GetValue <string>("Values:jaeger-host");

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender(jaegerHost, 6831, 0)) // todo:
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
        }
Esempio n. 19
0
        public static IServiceCollection AddJaegerTracing(
            this IServiceCollection services,
            Settings settings)
        {
            Guard.Argument(settings).NotNull();
            Guard.Argument(settings.ServiceName !).NotNull().NotEmpty().NotWhiteSpace();
            Guard.Argument(settings.Host).NotNull().NotEmpty().NotWhiteSpace();
            Guard.Argument(settings.SamplingRate).InRange(0, double.MaxValue);

            var sender = new UdpSender(settings.Host, settings.Port, maxPacketSize: 0);

            var reporter = new RemoteReporter.Builder()
                           .WithSender(sender)
                           .Build();

            ISampler sampler = settings.SamplingRate switch
            {
                double d when d >= 1 => new ConstSampler(sample: true),
                double d when d <= 0 => new ConstSampler(sample: false),
                _ => new ProbabilisticSampler(samplingRate: settings.SamplingRate),
            };

            var tracer = new Tracer.Builder(settings.ServiceName !)
                         .WithReporter(reporter)
                         .WithSampler(sampler)
                         .Build();

            return(services
                   .AddOpenTracing()
                   .AddSingleton <ITracer>(tracer));
        }
Esempio n. 20
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            // OpenTracing Tracer    
            if (Configuration.GetSection("OpenTracing:Agent").Exists())
            {
                string agentHost = Configuration.GetSection("OpenTracing:Agent").GetValue<string>("Host");
                int agentPort = Configuration.GetSection("OpenTracing:Agent").GetValue<int>("Port");
                int agentMaxPacketSize = Configuration.GetSection("OpenTracing:Agent").GetValue<int>("MaxPacketSize");
                var reporter = new RemoteReporter.Builder()
                    .WithSender(new UdpSender(string.IsNullOrEmpty(agentHost) ? UdpSender.DefaultAgentUdpHost : agentHost,
                                              agentPort <= 0 ? UdpSender.DefaultAgentUdpCompactPort : agentPort,
                                              agentMaxPacketSize <= 0 ? 0 : agentMaxPacketSize))
                    .Build();
                ITracer tracer = new Tracer.Builder(Assembly.GetEntryAssembly().GetName().Name)  // service name
                   .WithReporter(reporter)
                   .WithSampler(new ConstSampler(true))  // always send the span
                   .Build();
                GlobalTracer.Register(tracer);

                // ×¢ÈëTracer
                services.AddSingleton(tracer);
            }
        }
Esempio n. 21
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddSwaggerGen(c => c.SwaggerDoc("v1", new OpenApiInfo {
                Title = "LogService", Version = "v1"
            }));

            services.AddOpenTracing();
            // Adds the Jaeger Tracer.
            services.AddSingleton <ITracer>(sp =>
            {
                var serviceName   = sp.GetRequiredService <IWebHostEnvironment>().ApplicationName;
                var loggerFactory = sp.GetRequiredService <ILoggerFactory>();
                var reporter      = new RemoteReporter.Builder()
                                    .WithLoggerFactory(loggerFactory)
                                    .WithSender(
                    new HttpSender(
                        Configuration.GetConnectionString("Jaeger", "http-thrift")
                        ?? "http://localhost:14268/api/traces"))
                                    .Build();
                var tracer = new Tracer.Builder(serviceName)
                             // The constant sampler reports every span.
                             .WithSampler(new ConstSampler(true))
                             // LoggingReporter prints every reported span to the logging framework.
                             .WithReporter(reporter)
                             .Build();
                return(tracer);
            });

            services.Configure <HttpHandlerDiagnosticOptions>(options =>
                                                              options.OperationNameResolver =
                                                                  request => $"{request.Method.Method}: {request?.RequestUri?.AbsoluteUri}");
        }
        public static IServiceCollection ConfigurationJaeger(this IServiceCollection services)
        {
            services.AddMvc(options =>
            {
                options.Filters.AddService <TracingActionFilter>();
            });
            services.AddScoped <TracingActionFilter>();
            services.AddSingleton(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);
                var reporter     = new RemoteReporter.Builder().WithLoggerFactory(loggerFactory).WithSender(new UdpSender("jaeger_easy", 6831, 0)).Build();
                ITracer tracer   = new Tracer.Builder(serviceName)
                                   .WithLoggerFactory(loggerFactory)
                                   .WithReporter(reporter)
                                   .WithSampler(sampler)
                                   .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });

            services.AddOpenTracing();
            return(services);
        }
Esempio n. 23
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddTransient <IOrderDetails, SqlOrderDetails>();

            var url = Environment.GetEnvironmentVariable("UserServiceUrl");

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var jeagerurl = Environment.GetEnvironmentVariable("JaegerURL") ?? "";
                var reporter  = new RemoteReporter.Builder()
                                .WithLoggerFactory(loggerFactory)
                                .WithSender(new UdpSender("127.0.0.1", 6831, 0))
                                .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            services.AddOpenTracing();
        }
Esempio n. 24
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender(Environment.GetEnvironmentVariable("JAEGERUI") != null ? Environment.GetEnvironmentVariable("JAEGERUI") : "jaegerui", 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddOpenTracing();
            services.AddOptions();
            services.AddSingleton <IOrderBDC, OrderBDC.Classes.OrderBDC>();
        }
Esempio n. 25
0
        public static void AddJaeger(this ContainerBuilder builder)
        {
            builder.Register(context =>
            {
                var configuration = context.Resolve <IConfiguration>();
                var options       = new JaegerOptions();
                configuration.GetSection("jaeger").Bind(options);
                return(options);
            }).SingleInstance();

            builder.Register <ITracer>(context =>
            {
                var loggerFactory = context.Resolve <ILoggerFactory>();
                var options       = context.Resolve <JaegerOptions>();

                var reporter = new RemoteReporter
                               .Builder()
                               .WithSender(new UdpSender(options.UdpHost, options.UdpPort, options.MaxPacketSize))
                               .WithLoggerFactory(loggerFactory)
                               .Build();

                var sampler = GetSampler(options);
                var tracer  = new Tracer
                              .Builder(options.ServiceName)
                              .WithReporter(reporter)
                              .WithSampler(sampler)
                              .Build();

                GlobalTracer.Register(tracer);
                return(tracer);
            }).SingleInstance();
        }
Esempio n. 26
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender("jagerservice", 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            services.AddOpenTracing();
            services.AddControllers();
        }
Esempio n. 27
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddHttpClient();

            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = Assembly.GetEntryAssembly().GetName().Name;

                ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

                ISampler sampler = new ConstSampler(sample: true);

                var reporter = new RemoteReporter.Builder()
                               .WithLoggerFactory(loggerFactory)
                               .WithSender(new UdpSender("jaeger-agent.default.svc.cluster.local", 6831, 0))
                               .Build();

                ITracer tracer = new Tracer.Builder(serviceName)
                                 .WithLoggerFactory(loggerFactory)
                                 .WithSampler(sampler)
                                 .WithReporter(reporter)
                                 .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
            services.AddOpenTracing();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }
        public Tracer GetTracer(string serviceName, ILoggerFactory loggerFactory)
        {
            if (CacheTracers.ContainsKey(serviceName))
            {
                return(CacheTracers[serviceName]);
            }

            var traceBuilder = new Tracer.Builder(serviceName)
                               .WithSampler(new ConstSampler(true))
                               .WithLoggerFactory(loggerFactory);

            //var loggerFactory = traceBuilder.LoggerFactory;
            var metrics = traceBuilder.Metrics;

            //try result: 16686:X 14268:OK
            var sender = new HttpSender(EndPoint);

            var reporter = new RemoteReporter.Builder()
                           .WithLoggerFactory(loggerFactory)
                           .WithMetrics(metrics)
                           .WithSender(sender)
                           .Build();

            var tracer = traceBuilder
                         .WithReporter(reporter)
                         .Build();

            CacheTracers.Add(serviceName, tracer);
            return(tracer);
        }
Esempio n. 29
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddOpenTracing();

            // Adds the Jaeger Tracer.
            services.AddSingleton <ITracer>(serviceProvider =>
            {
                string serviceName = serviceProvider.GetRequiredService <IHostingEnvironment>().ApplicationName;
                var loggerFactory  = serviceProvider.GetRequiredService <ILoggerFactory>();
                var sampler        = new ConstSampler(sample: true);
                var reporter       = new RemoteReporter.Builder()
                                     .WithLoggerFactory(loggerFactory)                    // optional, defaults to no logging
                                                                                          //.WithMaxQueueSize(...)            // optional, defaults to 100
                                                                                          //.WithFlushInterval(...)           // optional, defaults to TimeSpan.FromSeconds(1)
                                     .WithSender(new UdpSender("192.168.1.172", 6831, 0)) // optional, defaults to UdpSender("localhost", 6831, 0)
                                     .Build();

                // This will log to a default localhost installation of Jaeger.
                var tracer = new Tracer.Builder(serviceName)
                             .WithLoggerFactory(loggerFactory)
                             .WithSampler(sampler)
                             .WithReporter(reporter)
                             .Build();

                GlobalTracer.Register(tracer);

                return(tracer);
            });
        }
Esempio n. 30
0
        public ReporterFixture()
        {
            var sender = new UdpSenderFixture().Sender;

            Reporter = new RemoteReporter.Builder()
                       .WithSender(sender)
                       .Build();
        }