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 Tailwind CSS all'interno di React: primi componenti
Implementare l'infinite scroll con QuickGrid in Blazor Server
Criptare la comunicazione con mTLS in Azure Container Apps
Creazione di componenti personalizzati in React.js con Tailwind CSS
Assegnare un valore di default a un parametro di una lambda in C#
Creare alias per tipi generici e tuple in C#
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creare un webhook in Azure DevOps
Generare velocemente pagine CRUD in Blazor con QuickGrid
.NET Conference Italia 2024
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Testare l'invio dei messaggi con Event Hubs Data Explorer