Ogni applicativo ha bisogno di essere monitorato e nel tempo dare le informazioni necessarie ad effettuare eventuali diagnostiche. Application Insights della piattaforma Microsoft Azure è il servizio ideale perché mette a disposizione moltissimi strumenti per analizzare i comportamenti degli utenti, le metriche e gli errori, anche partendo da piani gratuiti.
Quando installiamo l'SDK per collezionare i dati nelle nostre applicazioni web, però, otteniamo il tracciamento di tutte le richieste, anche di quelle poco significative. Poiché le nostre applicazioni sono esposte su internet, è facile trovare moltissime richieste HTTP, in molti casi anche sotto forma di tentativi di hacking, che sperperano spazio e rovinano la qualità delle informazioni. Tra le cose più utili rientra quindi la necessità di escludere gli errori 404.
Per farlo, se ci troviamo nel mondo .NET, è necessario scrivere un telemetry processor personalizzato, un layer che si pone ad ogni richiesta e ci permette di indicare se proseguire nella pipeline di logging oppure no. E' sufficiente creare una classe come la seguente, che implementa ITelemetryProcessor, per evitare di chiamare il layer successivo.
public class SkipTelemetryProcessor : ITelemetryProcessor { private readonly ITelemetryProcessor _next; public SkipTelemetryProcessor(ITelemetryProcessor next) { _next = next; } public void Process(ITelemetry item) { RequestTelemetry requestTelemetry = item as RequestTelemetry; // Escludo i 404 if (requestTelemetry != null && int.Parse(requestTelemetry.ResponseCode) == (int)HttpStatusCode.NotFound) { return; } _next.Process(item); } }
Successivamente dobbiamo configurare il nostro telemetry. Il file ApplicationInsights.config è la soluzione più comoda poiché è sufficiente inserire un nuovo nodo.
<ApplicationInsights> <Add Type="MyWebApp.SkipTelemetryProcessor, MyWebApp" /> <!-- ... --> </ApplicationInsights>
Possiamo a questo punto pubblicare la nostra applicazione e non doverci più preoccupare degli errori 404. Ovviamente questa tecnica può essere usata anche per escludere altre richieste o metriche, poiché è sufficiente guardare il contenuto di ITelemetry.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare gRPC su App Service di Azure
Generare una User Delegation SAS in .NET per Azure Blob Storage
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Gestire gli accessi con Token su Azure Container Registry
Migliorare la sicurezza dei prompt con Azure AI Studio
Definire stili a livello di libreria in Angular
Utilizzare l nesting nativo dei CSS
Ottimizzare le performance usando Span<T> e il metodo Split
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Estrarre dati randomici da una lista di oggetti in C#
.NET Conference Italia 2024
Aggiornare a .NET 9 su Azure App Service