static async Task Main(string[] args) { var connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;Integrated Security=True;Database=TestSandbox"; IHost host = new HostBuilder() .ConfigureServices(collection => { collection.AddTransient <IDapperContext>(provider => new DapperContext(connStr)); collection.AddTransient <IDbManager, DbManager>(); collection.AddOpenTracing(builder => { builder .AddBcl() .AddSqlClient() .AddLoggerProvider(); }); collection.AddSingleton <ITracer>(cli => { string applicationName = "SandboxSqlClient"; string environment = "Test"; string jaegerAgentHost = "localhost"; Environment.SetEnvironmentVariable("JAEGER_SERVICE_NAME", applicationName); Environment.SetEnvironmentVariable("JAEGER_AGENT_HOST", jaegerAgentHost); Environment.SetEnvironmentVariable("JAEGER_AGENT_PORT", "6831"); Environment.SetEnvironmentVariable("JAEGER_SAMPLER_TYPE", "const"); var loggerFactory = new LoggerFactory(); Jaeger.Configuration config = Jaeger.Configuration.FromEnv(loggerFactory); config.WithTracerTags(new Dictionary <string, string>() { { "environment", environment } }); ITracer tracer = config.GetTracer(); if (!GlobalTracer.IsRegistered()) { GlobalTracer.Register(tracer); } return(tracer); }); }).UseConsoleLifetime().Build(); await host.StartAsync(); var dbManager = host.Services.GetService <IDbManager>(); dbManager.CreateDb(); }
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()); }