/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseMetricsEndpoints(this IWebHostBuilder hostBuilder) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { services.AddMetricsEndpoints(context.Configuration); services.AddSingleton <IStartupFilter>(new DefaultMetricsEndpointsStartupFilter()); }); return(hostBuilder); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseResourceMetrics(this IWebHostBuilder hostBuilder) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { services.AddResourceMetricsMiddleware(context.Configuration); services.AddSingleton <IStartupFilter>(new DefaultResourceMetricsStartupFilter()); }); return(hostBuilder); }
public static IWebHostBuilder ConfigureMetrics(this IWebHostBuilder hostBuilder, Action <IMetricsBuilder> configureMetrics) { if (_metricsBuilt) { throw new InvalidOperationException("MetricsBuilder allows creation only of a single instance of IMetrics"); } hostBuilder.ConfigureMetrics( (context, builder) => { configureMetrics(builder); }); return(hostBuilder); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <param name="optionsDelegate">A callback to configure <see cref="MetricsWebTrackingOptions" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseMetricsWebTracking( this IWebHostBuilder hostBuilder, Action <MetricsWebTrackingOptions> optionsDelegate) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { services.AddMetricsTrackingMiddleware(optionsDelegate, context.Configuration); services.AddSingleton <IStartupFilter>(new DefaultMetricsTrackingStartupFilter()); }); return(hostBuilder); }
public static IWebHostBuilder UseMetrics(this IWebHostBuilder hostBuilder, Action <WebHostBuilderContext, IMetricsBuilder> configureMetrics) { hostBuilder.ConfigureMetrics(configureMetrics); return(hostBuilder.UseMetrics(options => { options.EndpointOptions = endpointsOptions => { endpointsOptions.EnvironmentInfoEndpointEnabled = true; endpointsOptions.MetricsTextEndpointEnabled = false; endpointsOptions.MetricsEndpointEnabled = true; endpointsOptions.MetricsEndpointOutputFormatter = Metrics.Instance.OutputMetricsFormatters.OfType <App.Metrics.Formatters.Prometheus.MetricsPrometheusTextOutputFormatter>().First(); }; })); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <param name="configuration">The <see cref="IConfiguration"/> containing <see cref="ResourceMetricsOptions"/></param> /// <param name="optionsDelegate">A callback to configure <see cref="ResourceMetricsOptions" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseResourceMetrics( this IWebHostBuilder hostBuilder, IConfiguration configuration, Action <ResourceMetricsOptions> optionsDelegate) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( services => { services.AddResourceMetricsMiddleware(optionsDelegate, configuration); services.AddSingleton <IStartupFilter>(new DefaultResourceMetricsStartupFilter()); }); return(hostBuilder); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <param name="configuration">The <see cref="IConfiguration" /> containing <see cref="MetricEndpointsOptions" /></param> /// <param name="optionsDelegate">A callback to configure <see cref="MetricEndpointsOptions" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseMetricsEndpoints( this IWebHostBuilder hostBuilder, IConfiguration configuration, Action <MetricEndpointsOptions> optionsDelegate) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( services => { services.AddMetricsEndpoints(optionsDelegate, configuration); services.AddSingleton <IStartupFilter>(new DefaultMetricsEndpointsStartupFilter()); }); return(hostBuilder); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <typeparam name="TStartup">The type of the <see cref="IStartupFilter" /> used to configure metrics middleware.</typeparam> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> public static IWebHostBuilder UseMetrics <TStartup>( this IWebHostBuilder hostBuilder) where TStartup : IStartupFilter, new() { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { services.AddMetricsReportingHostedService(); services.AddMetricsEndpoints(context.Configuration); services.AddMetricsTrackingMiddleware(context.Configuration); services.AddSingleton <IStartupFilter>(new TStartup()); }); return(hostBuilder); }
public static IWebHostBuilder ConfigurePrometheusEndpoint(this IWebHostBuilder builder) { Metrics = AppMetrics.CreateDefaultBuilder() .OutputMetrics.AsPrometheusPlainText() //.OutputMetrics.AsPrometheusProtobuf() .Build(); return(builder.ConfigureMetrics(Metrics) .UseMetrics( options => { options.EndpointOptions = endpointsOptions => { endpointsOptions.MetricsTextEndpointOutputFormatter = Metrics.OutputMetricsFormatters .OfType <MetricsPrometheusTextOutputFormatter>().First(); //endpointsOptions.MetricsEndpointOutputFormatter = Metrics.OutputMetricsFormatters.OfType<MetricsPrometheusProtobufOutputFormatter>().First(); }; })); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <param name="setupDelegate">A callback to configure <see cref="ResourceMetricsOptions" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseResourceMetrics( this IWebHostBuilder hostBuilder, Action <WebHostBuilderContext, ResourceMetricsOptions> setupDelegate) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { var ResourceOptions = new ResourceMetricsOptions(); services.AddResourceMetricsMiddleware( options => setupDelegate(context, ResourceOptions), context.Configuration); services.AddSingleton <IStartupFilter>(new DefaultResourceMetricsStartupFilter()); }); return(hostBuilder); }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <param name="setupDelegate">A callback to configure <see cref="MetricEndpointsOptions" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> /// <exception cref="ArgumentNullException"> /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> cannot be null /// </exception> public static IWebHostBuilder UseMetricsEndpoints( this IWebHostBuilder hostBuilder, Action <WebHostBuilderContext, MetricEndpointsOptions> setupDelegate) { hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { var endpointOptions = new MetricEndpointsOptions(); services.AddMetricsEndpoints( options => setupDelegate(context, endpointOptions), context.Configuration); services.AddSingleton <IStartupFilter>(new DefaultMetricsEndpointsStartupFilter()); }); return(hostBuilder); }
private static void ConfigureMetricsReporting(IWebHostBuilder builder, MetricOptions options) { if (String.Equals(options.Provider, "prometheus")) { var metrics = AppMetrics.CreateDefaultBuilder() .OutputMetrics.AsPrometheusPlainText() .OutputMetrics.AsPrometheusProtobuf() .Build(); builder.ConfigureMetrics(metrics).UseMetrics(o => { o.EndpointOptions = endpointsOptions => { endpointsOptions.MetricsTextEndpointOutputFormatter = metrics.OutputMetricsFormatters.GetType <MetricsPrometheusTextOutputFormatter>(); endpointsOptions.MetricsEndpointOutputFormatter = metrics.OutputMetricsFormatters.GetType <MetricsPrometheusProtobufOutputFormatter>(); }; }); } else if (!String.Equals(options.Provider, "statsd")) { builder.UseMetrics(); } }
private static void ConfigureMetricsReporting(IWebHostBuilder builder) { if (Settings.Current.MetricsConnectionString is PrometheusMetricsConnectionString) { var metrics = AppMetrics.CreateDefaultBuilder() .OutputMetrics.AsPrometheusPlainText() .OutputMetrics.AsPrometheusProtobuf() .Build(); builder.ConfigureMetrics(metrics).UseMetrics(options => { options.EndpointOptions = endpointsOptions => { endpointsOptions.MetricsTextEndpointOutputFormatter = metrics.OutputMetricsFormatters.GetType <MetricsPrometheusTextOutputFormatter>(); endpointsOptions.MetricsEndpointOutputFormatter = metrics.OutputMetricsFormatters.GetType <MetricsPrometheusProtobufOutputFormatter>(); }; }); } else if (!(Settings.Current.MetricsConnectionString is StatsDMetricsConnectionString)) { builder.UseMetrics(); } }
/// <summary> /// Adds App Metrics services, configuration and middleware to the /// <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />. /// </summary> /// <typeparam name="TStartup">The type of the <see cref="IStartupFilter" /> used to configure metrics middleware.</typeparam> /// <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" />.</param> /// <param name="optionsDelegate">A callback to configure <see cref="MetricsWebTrackingOptions" />.</param> /// <returns>A reference to this instance after the operation has completed.</returns> public static IWebHostBuilder UseMetrics <TStartup>( this IWebHostBuilder hostBuilder, Action <MetricsWebHostOptions> optionsDelegate) where TStartup : IStartupFilter, new() { var options = new MetricsWebHostOptions(); hostBuilder.ConfigureMetrics(); hostBuilder.ConfigureServices( (context, services) => { optionsDelegate(options); services.AddMetricsReportingHostedService(options.UnobservedTaskExceptionHandler); services.AddMetricsEndpoints(options.EndpointOptions, context.Configuration); services.AddMetricsTrackingMiddleware(options.TrackingMiddlewareOptions, context.Configuration); services.AddSingleton <IStartupFilter>(new TStartup()); }); return(hostBuilder); }