in CachingProxy/src/Program.cs [17:61]
public static Task Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseSentry();
if (builder.Environment.IsDevelopment())
{
builder.Logging.AddSimpleConsole();
}
else
{
builder.Logging.AddJsonConsole();
builder.Logging.AddSentry();
}
// Bind CachingProxyConfig from configuration
builder.Services.Configure<CachingProxyConfig>(builder.Configuration);
ConfigureOurServices(builder.Services);
builder.Services
.AddOpenTelemetry()
.ConfigureResource(resource => resource.AddService(builder.Environment.ApplicationName))
.WithMetrics(metrics => metrics
.AddAspNetCoreInstrumentation()
.AddRuntimeInstrumentation()
.AddMeter(CachingProxyMetrics.MeterName)
.AddPrometheusExporter()
.AddOtlpExporter()
);
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseOpenTelemetryPrometheusScrapingEndpoint();
app.UseMiddleware<CachingProxy>();
return app.RunAsync();
}