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
Gestire il colore CSS con HWB
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Ottenere un token di accesso per una GitHub App
Recuperare App Service cancellati su Azure
Simulare Azure Cosmos DB in locale con Docker
Utilizzare Azure Cosmos DB con i vettori
Eseguire una query su SQL Azure tramite un workflow di GitHub
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Creare una libreria CSS universale - Rotazione degli elementi
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database