/// <summary> /// Enables the incoming requests automatic data collection for ASP.NET Core. /// </summary> /// <param name="builder"><see cref="TracerProviderBuilder"/> being configured.</param> /// <param name="configureAspNetCoreInstrumentationOptions">ASP.NET Core Request configuration options.</param> /// <returns>The instance of <see cref="TracerProviderBuilder"/> to chain the calls.</returns> public static TracerProviderBuilder AddAspNetCoreInstrumentation( this TracerProviderBuilder builder, Action <AspNetCoreInstrumentationOptions> configureAspNetCoreInstrumentationOptions = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var aspnetCoreOptions = new AspNetCoreInstrumentationOptions(); configureAspNetCoreInstrumentationOptions?.Invoke(aspnetCoreOptions); builder.AddInstrumentation(() => new AspNetCoreInstrumentation(aspnetCoreOptions)); builder.AddSource(HttpInListener.ActivitySourceName); builder.AddLegacyActivity(HttpInListener.ActivityOperationName); // for the activities created by AspNetCore builder.AddLegacyActivity(HttpInListener.ActivityNameByHttpInListener); // for the sibling activities created by the instrumentation library return(builder); }
/// <summary> /// Enables gRPClient Instrumentation. /// </summary> /// <param name="builder"><see cref="TracerProviderBuilder"/> being configured.</param> /// <param name="configure">GrpcClient configuration options.</param> /// <returns>The instance of <see cref="TracerProviderBuilder"/> to chain the calls.</returns> public static TracerProviderBuilder AddGrpcClientInstrumentation( this TracerProviderBuilder builder, Action <GrpcClientInstrumentationOptions> configure = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var grpcOptions = new GrpcClientInstrumentationOptions(); configure?.Invoke(grpcOptions); builder.AddInstrumentation(() => new GrpcClientInstrumentation(grpcOptions)); builder.AddSource(GrpcClientDiagnosticListener.ActivitySourceName); builder.AddLegacyActivity("Grpc.Net.Client.GrpcOut"); return(builder); }
/// <summary> /// Enables HttpClient instrumentation. /// </summary> /// <param name="builder"><see cref="TracerProviderBuilder"/> being configured.</param> /// <param name="configureHttpClientInstrumentationOptions">HttpClient configuration options.</param> /// <returns>The instance of <see cref="TracerProviderBuilder"/> to chain the calls.</returns> public static TracerProviderBuilder AddHttpClientInstrumentation( this TracerProviderBuilder builder, Action <HttpClientInstrumentationOptions> configureHttpClientInstrumentationOptions = null) #endif { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var httpClientOptions = new HttpClientInstrumentationOptions(); configureHttpClientInstrumentationOptions?.Invoke(httpClientOptions); builder.AddInstrumentation(() => new HttpClientInstrumentation(httpClientOptions)); builder.AddSource(HttpHandlerDiagnosticListener.ActivitySourceName); builder.AddLegacyActivity("System.Net.Http.HttpRequestOut"); #if NETFRAMEWORK builder.AddHttpWebRequestInstrumentation(configureHttpWebRequestInstrumentationOptions); #endif return(builder); }