static void Main(string[] args) { var e = new HttpEventListener(); var arguments = new Dictionary <string, string> { { "EventCounterIntervalSec", "1" } }; _ = Go(); Console.ReadKey(); }
private static async Task RunAsync() { var endpoint = "/delay/5ms"; using var listener = new HttpEventListener(); source = new ActivitySource("http-client-test"); var serviceCollection = new ServiceCollection(); serviceCollection.AddHttpOptionsTelemetry(builder => builder.AddConsoleExporter()); serviceCollection.AddHttpClientOptions(options => { options.ServiceName = "service"; options.Handler.MaxConnection = 500; _server.ConfigureWireMockServer(options); }); var services = serviceCollection.BuildServiceProvider(); await Task.WhenAll(services.GetServices <IHostedService>() .Select(e => e.StartAsync(CancellationToken.None))); var factory = services.GetRequiredService <IHttpClientFactory>(); var client = factory.CreateClient("service"); var stopwatch = Stopwatch.StartNew(); Console.WriteLine("oooo: "); do { try { await client.GetAsync(endpoint).ConfigureAwait(false); } catch (Exception e) { } } while (Console.ReadKey().Key != ConsoleKey.Escape); do { try { var activityLinks = new List <ActivityLink>(); var initialTags = new ActivityTagsCollection(); initialTags["com.mycompany.product.mytag1"] = "tagValue1"; initialTags["com.mycompany.product.mytag2"] = "tagValue2"; var linkedContext1 = new ActivityContext( ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None); var linkedContext2 = new ActivityContext( ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.Recorded); activityLinks.Add(new ActivityLink(linkedContext1)); activityLinks.Add(new ActivityLink(linkedContext2)); using var activity = source.StartActivity( "ActivityWithLinks", ActivityKind.Server, default(ActivityContext), initialTags, activityLinks); var latencyStats = await TrafficGenerator .GenerateTraffic(100, () => client.GetAsync(endpoint)) .Latency() .TakeUntil(DateTimeOffset.Now.AddSeconds(20)); Console.WriteLine(latencyStats.Print()); await client.GetAsync(endpoint).ConfigureAwait(false); System.Console.WriteLine("Press Enter key to continue."); } catch (Exception e) { Console.WriteLine(e); throw; } } while (Console.ReadKey().Key != ConsoleKey.Escape); }