using Billing; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using NServiceBus; using OpenTelemetry.Trace; using Sales; using Shipping; namespace Worker { class Program { static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } private static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseNServiceBus(_ => { var endpointConfiguration = new EndpointConfiguration("DistributedTracingDemo"); var transport = endpointConfiguration.UseTransport<LearningTransport>(); endpointConfiguration.UsePersistence<LearningPersistence>(); var routing = transport.Routing(); routing.MapBilling(); routing.MapSales(); routing.MapShipping(); return endpointConfiguration; }) .ConfigureServices(services => { services.AddOpenTelemetryTracing(builder => { builder.AddSource("worker"); builder.AddZipkinExporter(); builder.AddNServiceBusInstrumentation(); builder.AddHttpClientInstrumentation(); }); services.AddSales(); services.AddShipping(); }); } }