2016-07-12 70 views
10

Sto utilizzando Azure Application Insights per un sito Web (Servizio app di Azure). Su quello sto usando un setup di Umbraco in cluster e un bombardamento. Solo questi due continuano a colpire il database ogni minuto e stanno inondando le mie "App Insights".Informazioni sulle app: Disabilita telemetria Dipendenza SQL

Quindi la mia domanda è, come si disabilita Sql Dependency Tracker? Ho dato un'occhiata a ApplicationInsights.config e non ho trovato nulla di ovvio. Posso vedere Microsoft.ApplicationInsights.DependencyCollector che è probabilmente responsabile, ma non voglio rimuovere tutti i tipi di telemetria delle dipendenze, solo sql.

Grazie

risposta

18

la soluzione migliore è quello di utilizzare un processore di telemetria per filtrare determinati tipi di richieste di dipendenza. Dai un'occhiata a queste risorse per informazioni.

Sampling, filtering and preprocessing telemetry in the Application Insights SDK

Request filtering in Application Insights with Telemetry Processor

Un processore esempio potrebbe essere simile a questo.

using Microsoft.ApplicationInsights.Channel; 
using Microsoft.ApplicationInsights.Extensibility; 
using Microsoft.ApplicationInsights.DataContracts; 

public class NoSQLDependencies : ITelemetryProcessor 
{ 
    private ITelemetryProcessor Next { get; set; } 

    // Link processors to each other in a chain. 
    public NoSQLDependencies(ITelemetryProcessor next) 
    { 
     this.Next = next; 
    } 
    public void Process(ITelemetry item) 
    { 
     if (IsSQLDependency(item)) { return; } 
     this.Next.Process(item); 
    } 

    private bool IsSQLDependency(ITelemetry item) 
    { 
     var dependency = item as DependencyTelemetry; 
     if (dependency?.DependencyTypeName == "SQL") 
     { 
      return true; 
     } 
     return false; 
    } 
} 
+1

Sapresti per caso quali sono i valori possibili per DependencyTypeName? Vorrei interrompere il tracciamento dell'accesso alla memoria BLOB – Mick

+0

@Mick hai mai trovato una soluzione per questo? – batmaci

+1

@batmaci sì, l'ho fatto. Ho creato un ITelemetryProcessor eseguito l'applicazione nel debugger, inserito un punto di interruzione condizionale nel processore fino a quando non ho trovato la telemetria che volevo bloccare. Ispezionare le proprietà dell'elemento ITelemetry mi ha permesso di definire i criteri per filtrare la particolare telemetria che volevo filtrare, come illustrato in questa risposta – Mick