Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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());
        }