Escludere i 404 dalle statistiche di Application Insights

di Cristian Civera, in Application Insights,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi