/// <summary> /// Enables HttpClient instrumentation. /// </summary> /// <param name="builder"><see cref="MeterProviderBuilder"/> being configured.</param> /// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns> public static MeterProviderBuilder AddHttpClientInstrumentation( this MeterProviderBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } // TODO: Implement an IDeferredMeterProviderBuilder // TODO: Handle HttpClientInstrumentationOptions // SetHttpFlavor - seems like this would be handled by views // Filter - makes sense for metric instrumentation // Enrich - do we want a similar kind of functionality for metrics? // RecordException - probably doesn't make sense for metric instrumentation var instrumentation = new HttpClientMetrics(); builder.AddSource(HttpClientMetrics.InstrumentationName); return(builder.AddInstrumentation(() => instrumentation)); }
/// <summary> /// Enables the incoming requests automatic data collection for ASP.NET Core. /// </summary> /// <param name="builder"><see cref="MeterProviderBuilder"/> being configured.</param> /// <returns>The instance of <see cref="MeterProviderBuilder"/> to chain the calls.</returns> public static MeterProviderBuilder AddAspNetCoreInstrumentation( this MeterProviderBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } // TODO: Implement an IDeferredMeterProviderBuilder // TODO: Handle AspNetCoreInstrumentationOptions // Filter - makes sense for metric instrumentation // Enrich - do we want a similar kind of functionality for metrics? // RecordException - probably doesn't make sense for metric instrumentation // EnableGrpcAspNetCoreSupport - this instrumentation will also need to also handle gRPC requests var instrumentation = new AspNetCoreMetrics(); builder.AddSource(AspNetCoreMetrics.InstrumentationName); return(builder.AddInstrumentation(() => instrumentation)); }