Quando un utente segnala "il sito è lento", servono dati, non ipotesi. OpenTelemetry è lo standard aperto per raccogliere tracce, metriche e log, e .NET lo supporta in modo nativo.
Configurazione di base
builder.Services.AddOpenTelemetry()
.ConfigureResource(r => r.AddService("negozio-api"))
.WithTracing(t => t
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation())
.WithMetrics(m => m
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddRuntimeInstrumentation())
.UseOtlpExporter();
I dati vengono inviati con il protocollo OTLP a qualsiasi sistema compatibile: soluzioni open source, servizi cloud o il cruscotto di Aspire durante lo sviluppo.
Tracce personalizzate
public static class Telemetria
{
public static readonly ActivitySource Sorgente = new("Negozio.Ordini");
}
using var attivita = Telemetria.Sorgente.StartActivity("CalcolaSpedizione");
attivita?.SetTag("ordine.paese", ordine.Paese);
Health check
Un endpoint di salute dice a bilanciatori, orchestratori e sistemi di monitoraggio se l'istanza è pronta a ricevere traffico.
builder.Services.AddHealthChecks()
.AddCheck("spazio-disco", () =>
{
var libero = new DriveInfo(AppContext.BaseDirectory).AvailableFreeSpace;
return libero > 500_000_000
? HealthCheckResult.Healthy()
: HealthCheckResult.Degraded("Spazio su disco in esaurimento");
});
app.MapHealthChecks("/health");
Cosa misurare davvero
Tempi di risposta per endpoint, percentuale di errori, durata delle query e delle chiamate esterne. Pochi indicatori ben scelti, con soglie di allarme sensate, valgono più di cento grafici che nessuno guarda.
Commenti (0)
Nessun commento ancora.