/// <summary> /// Enables out-of-the-box Wavefront metrics, tracing, and reporting for an ASP.NET Core MVC /// application. /// </summary> /// <returns>The <see cref="IServiceCollection"/> instance.</returns> /// <param name="services">The <see cref="IServiceCollection"/> instance.</param> /// <param name="wfAspNetCoreReporter">The Wavefront ASP.NET Core reporter.</param> /// <param name="tracer">The Wavefront tracer.</param> public static IServiceCollection AddWavefrontForMvc( this IServiceCollection services, WavefrontAspNetCoreReporter wfAspNetCoreReporter, ITracer tracer) { // register App Metrics registry and services services.AddMetrics(wfAspNetCoreReporter.Metrics); // register App Metrics reporting scheduler services.AddMetricsReportScheduler(); // register Wavefront ASP.NET Core reporter services.TryAddSingleton(wfAspNetCoreReporter); // register tracer if (tracer != null) { GlobalTracer.Register(tracer); } services.TryAddSingleton(GlobalTracer.Instance); // register Wavefront Heartbeater hosted service services.AddHostedService <HeartbeaterHostedService>(); // register Wavefront instrumentation services services.TryAddSingleton <DiagnosticManager>(); services.TryAddEnumerable( ServiceDescriptor.Singleton <DiagnosticObserver, AspNetCoreDiagnostics>()); services.TryAddEnumerable( ServiceDescriptor.Singleton <DiagnosticObserver, HttpHandlerDiagnostics>()); services.AddHostedService <InstrumentationService>(); return(services); }
public HeartbeaterHostedService(WavefrontAspNetCoreReporter wfAspNetCoreReporter, ILoggerFactory loggerFactory) { _heartbeaterService = new HeartbeaterService( wfAspNetCoreReporter.WavefrontSender, wfAspNetCoreReporter.ApplicationTags, new List <string> { Constants.AspNetCoreComponent }, wfAspNetCoreReporter.Source, loggerFactory ); }
/// <summary> /// Enables out-of-the-box Wavefront metrics and reporting for an ASP.NET Core MVC /// application. /// </summary> /// <returns>The <see cref="IServiceCollection"/> instance.</returns> /// <param name="services">The <see cref="IServiceCollection"/> instance.</param> /// <param name="wfAspNetCoreReporter">The Wavefront ASP.NET Core reporter.</param> public static IServiceCollection AddWavefrontForMvc( this IServiceCollection services, WavefrontAspNetCoreReporter wfAspNetCoreReporter) { return(services.AddWavefrontForMvc(wfAspNetCoreReporter, null)); }