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(); }
// 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(); }
// 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(); }
// 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(); }
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); }
// 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(); }
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); } }
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); }
// 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(); }
private IReporter CreateJaegerReporter() { var reporter = new RemoteReporter.Builder(this.options) .Build(); return(reporter); }
// 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(); }
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); }
// 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(); }
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)); }
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); } }
// 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); }
// 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(); }
// 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>(); }
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(); }
// 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(); }
// 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); }
// 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); }); }
public ReporterFixture() { var sender = new UdpSenderFixture().Sender; Reporter = new RemoteReporter.Builder() .WithSender(sender) .Build(); }