namespace WebStatus;
public class Startup
{
public Startup(IConfiguration configuration)
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
RegisterAppInsights(services);
services.AddControllers();
services.AddOptions();
services.AddHealthChecks()
.AddCheck("self", () => HealthCheckResult.Healthy());
services
.AddHealthChecksUI()
.AddInMemoryStorage();
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
//loggerFactory.AddAzureWebAppDiagnostics();
//loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace);
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseExceptionHandler("/Home/Error");
var pathBase = Configuration["PATH_BASE"];
if (!string.IsNullOrEmpty(pathBase))
app.UsePathBase(pathBase);
app.UseHealthChecksUI(config =>
config.ResourcesPath = string.IsNullOrEmpty(pathBase) ? "/ui/resources" : $"{pathBase}/ui/resources";
config.UIPath = "/hc-ui";
});
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
endpoints.MapDefaultControllerRoute();
endpoints.MapHealthChecks("/liveness", new HealthCheckOptions
Predicate = r => r.Name.Contains("self")
private void RegisterAppInsights(IServiceCollection services)
services.AddApplicationInsightsTelemetry(Configuration);
services.AddApplicationInsightsKubernetesEnricher();