Exemplo n.º 1
0
Arquivo: Add.cs Projeto: deeja/metrics
 public static IServiceCollection AddMetrics(this IServiceCollection services, IConfiguration configuration,
                                             Action <MetricsBuilder> configure)
 {
     return(AddMetrics(services, builder =>
     {
         var options = new MetricsOptions();
         configuration.Bind(options);
         configure(builder);
     }));
 }
Exemplo n.º 2
0
        public static IWebHostBuilder UseAppMetrics(this IWebHostBuilder webHostBuilder)
        {
            if (_initialized)
            {
                return(webHostBuilder);
            }

            return(webHostBuilder
                   .ConfigureMetricsWithDefaults((context, builder) =>
            {
                var metricsOptions = new MetricsOptions();

                (context.Configuration as IConfiguration)
                .GetSection("metrics")
                .Bind(metricsOptions);

                if (!metricsOptions.Enabled)
                {
                    return;
                }
                _initialized = true;

                if (metricsOptions.InfluxEnabled)
                {
                    builder.Report.ToInfluxDb(o =>
                    {
                        o.InfluxDb.Database = metricsOptions.Database;
                        o.InfluxDb.BaseUri = new Uri(metricsOptions.InfluxUrl);
                        o.InfluxDb.CreateDataBaseIfNotExists = true;
                        o.FlushInterval = TimeSpan.FromSeconds(metricsOptions.Interval);
                    });
                }
            })
                   .UseHealth()
                   .UseHealthEndpoints()
                   .UseMetricsWebTracking()
                   .UseMetrics());
        }