public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics( Configuration.GetSection("AppMetrics"), options => { options.WithGlobalTags( (globalTags, info) => { globalTags.Add("app", info.EntryAssemblyName); globalTags.Add("server", info.MachineName); globalTags.Add("version", info.EntryAssemblyVersion); }); }). AddPrometheusSerialization(). AddJsonHealthSerialization(). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); }). AddMetricsMiddleware(Configuration.GetSection("AspNetMetrics")); }
public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics(Configuration.GetSection("AppMetrics")). AddAsciiHealthSerialization(). AddInfluxDBLineProtocolMetricsSerialization(). AddInfluxDBLineProtocolMetricsTextSerialization(). AddReporting( factory => { factory.AddInfluxDb( new InfluxDBReporterSettings { InfluxDbSettings = new InfluxDBSettings(InfluxDbDatabase, InfluxDbUri) }, reportFilter); }). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); }). AddMetricsMiddleware(Configuration.GetSection("AspNetMetrics")); }
public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics(Configuration.GetSection("AppMetrics")). AddJsonHealthSerialization(). // AddJsonMetricsTextSerialization(). AddElasticsearchMetricsTextSerialization(ElasticSearchIndex). AddElasticsearchMetricsSerialization(ElasticSearchIndex). AddReporting( factory => { factory.AddElasticSearch( new ElasticSearchReporterSettings { ElasticSearchSettings = new ElasticSearchSettings(ElasticSearchUri, ElasticSearchIndex) }, reportFilter); }). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); }). AddMetricsMiddleware(Configuration.GetSection("AspNetMetrics")); }
public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics(Configuration.GetSection("AppMetrics"), options => { options.WithGlobalTags( (globalTags, info) => { globalTags.Add("app", info.EntryAssemblyName); }); }). AddJsonSerialization(). AddReporting( factory => { factory.AddInfluxDb( new InfluxDBReporterSettings { HttpPolicy = new HttpPolicy { FailuresBeforeBackoff = 3, BackoffPeriod = TimeSpan.FromSeconds(30), Timeout = TimeSpan.FromSeconds(10) }, InfluxDbSettings = new InfluxDBSettings(InfluxDbDatabase, InfluxDbUri), ReportInterval = TimeSpan.FromSeconds(5) }, reportFilter); }). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); }). AddMetricsMiddleware(Configuration.GetSection("AspNetMetrics")); }
public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics(Configuration.GetSection("AppMetrics")). AddGraphiteMetricsTextSerialization(). AddGraphiteMetricsSerialization(). AddAsciiEnvironmentInfoSerialization(). AddAsciiHealthSerialization(). AddReporting( factory => { factory.AddGraphite( new GraphiteReporterSettings { HttpPolicy = new HttpPolicy { FailuresBeforeBackoff = 3, BackoffPeriod = TimeSpan.FromSeconds(30), Timeout = TimeSpan.FromSeconds(10) }, GraphiteSettings = new GraphiteSettings(new Uri("net.tcp://localhost:32771")), // GraphiteSettings = new GraphiteSettings(new Uri("net.udp://localhost:32771")), ReportInterval = TimeSpan.FromSeconds(5) }); }). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); }). AddMetricsMiddleware(Configuration.GetSection("AspNetMetrics")); }
public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics( Configuration.GetSection("AppMetrics"), options => { options.WithGlobalTags( (globalTags, info) => { globalTags.Add("app", info.EntryAssemblyName); globalTags.Add("server", info.MachineName); globalTags.Add("env", Env.IsStaging() ? "stage" : Env.IsProduction() ? "prod" : "dev"); globalTags.Add("version", info.EntryAssemblyVersion); }); }). AddJsonSerialization(). AddReporting( factory => { if (ReportTypes.Any(r => r == ReportType.InfluxDB)) { factory.AddInfluxDb( new InfluxDBReporterSettings { HttpPolicy = new HttpPolicy { FailuresBeforeBackoff = 3, BackoffPeriod = TimeSpan.FromSeconds(30), Timeout = TimeSpan.FromSeconds(10) }, InfluxDbSettings = new InfluxDBSettings(InfluxDbDatabase, InfluxDbUri), ReportInterval = TimeSpan.FromSeconds(5) }, reportFilter); } if (ReportTypes.Any(r => r == ReportType.ElasticSearch)) { factory.AddElasticSearch( new ElasticSearchReporterSettings { HttpPolicy = new Extensions.Reporting.ElasticSearch.HttpPolicy { FailuresBeforeBackoff = 3, BackoffPeriod = TimeSpan.FromSeconds(30), Timeout = TimeSpan.FromSeconds(10) }, ElasticSearchSettings = new ElasticSearchSettings(ElasticSearchUri, ElasticSearchIndex), ReportInterval = TimeSpan.FromSeconds(5) }, reportFilter); } }). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); }). AddMetricsMiddleware(); }
public void ConfigureServices(IServiceCollection services) { services.AddTestStuff(); services.AddLogging().AddRouting(options => { options.LowercaseUrls = true; }); services.AddMvc(options => options.AddMetricsResourceFilter()); var reportFilter = new DefaultMetricsFilter(); reportFilter.WithHealthChecks(false); services.AddMetrics(Configuration.GetSection("AppMetrics")). // AddJsonMetricsSerialization(). // AddElasticsearchMetricsSerialization(ElasticSearchIndex). AddJsonMetricsSerialization(). AddAsciiHealthSerialization(). AddAsciiMetricsTextSerialization(). // AddPrometheusPlainTextSerialization(). // AddInfluxDBLineProtocolMetricsTextSerialization(). // AddAsciiEnvironmentInfoSerialization(). AddJsonEnvironmentInfoSerialization(). AddReporting( factory => { if (ReportTypes.Any(r => r == ReportType.InfluxDB)) { factory.AddInfluxDb( new InfluxDBReporterSettings { HttpPolicy = new HttpPolicy { FailuresBeforeBackoff = 3, BackoffPeriod = TimeSpan.FromSeconds(30), Timeout = TimeSpan.FromSeconds(10) }, InfluxDbSettings = new InfluxDBSettings(InfluxDbDatabase, InfluxDbUri), ReportInterval = TimeSpan.FromSeconds(5) }, reportFilter); if (ReportTypes.Any(r => r == ReportType.ElasticSearch)) { factory.AddElasticSearch( new ElasticSearchReporterSettings { HttpPolicy = new Extensions.Reporting.ElasticSearch.HttpPolicy { FailuresBeforeBackoff = 3, BackoffPeriod = TimeSpan.FromSeconds(30), Timeout = TimeSpan.FromSeconds(10) }, ElasticSearchSettings = new ElasticSearchSettings(ElasticSearchUri, ElasticSearchIndex), ReportInterval = TimeSpan.FromSeconds(5) }, reportFilter); } //if (ReportTypes.Any(r => r == ReportType.Graphite)) //{ // factory.AddGraphite( // new GraphiteReporterSettings // { // HttpPolicy = new Extensions.Reporting.Graphite.HttpPolicy // { // FailuresBeforeBackoff = 3, // BackoffPeriod = TimeSpan.FromSeconds(30), // Timeout = TimeSpan.FromSeconds(3) // }, // GraphiteSettings = new GraphiteSettings(GraphiteUri), // ReportInterval = TimeSpan.FromSeconds(5) // }); //} } }). AddHealthChecks( factory => { factory.RegisterPingHealthCheck("google ping", "google.com", TimeSpan.FromSeconds(10)); factory.RegisterHttpGetHealthCheck("github", new Uri("https://github.com/"), TimeSpan.FromSeconds(10)); factory.RegisterMetricCheck( name: "Database Call Duration", options: SandboxMetricsRegistry.DatabaseTimer, tags: new MetricTags("client_id", "client-9"), passing: value => (message: $"OK. 98th Percentile < 100ms ({value.Histogram.Percentile98}{SandboxMetricsRegistry.DatabaseTimer.DurationUnit.Unit()})", result: value.Histogram.Percentile98 < 100), warning: value => (message: $"WARNING. 98th Percentile > 100ms ({value.Histogram.Percentile98}{SandboxMetricsRegistry.DatabaseTimer.DurationUnit.Unit()})", result: value.Histogram.Percentile98 < 200), failing: value => (message: $"FAILED. 98th Percentile > 200ms ({value.Histogram.Percentile98}{SandboxMetricsRegistry.DatabaseTimer.DurationUnit.Unit()})", result: value.Histogram.Percentile98 > 200)); }). AddMetricsMiddleware(Configuration.GetSection("AspNetMetrics")); }