public static Task Main() { Init(); SampleMetricsRunner.ScheduleSomeSampleMetrics(Metrics); // Using AspNet Core to host a HTTP endpoint which receives metrics as JSON via the HTTP reporter. var host = new WebHostBuilder() .UseKestrel() .UseStartup <Startup>() .UseUrls("http://localhost:50001") .Build(); host.Run(); return(Task.CompletedTask); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); string mackerelApiKey = Configuration.GetValue <string>("Mackerel:ApiKey"); string mackerelHostId = Configuration.GetValue <string>("Mackerel:HostId"); var filter = new MetricsFilter(); var metrics = AppMetrics.CreateDefaultBuilder() .Report.ToMackerel( options => { options.ApiKey = mackerelApiKey; options.HostId = mackerelHostId; options.HttpOptions.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30); options.HttpOptions.HttpPolicy.FailuresBeforeBackoff = 3; options.HttpOptions.HttpPolicy.Timeout = TimeSpan.FromSeconds(10); options.HttpOptions.Filter = filter; options.HttpOptions.FlushInterval = TimeSpan.FromSeconds(60); }) .Build(); SampleMetricsRunner.ScheduleSomeSampleMetrics(metrics); services.AddMetrics(metrics); services.AddMetricsTrackingMiddleware(); services.AddMetricsReportingHostedService(); services.AddMetricsEndpoints(); services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) .AddMetrics(); }