2016-07-12 40 views
10

Korzystam z aplikacji Azure Application Insights dla witryny internetowej (usługa aplikacji Azure). Na tym używam skupionej konfiguracji Umbraco i hangfire. Te dwie osoby ciągle trafiają do bazy danych co minutę i zalewają moje "App Insights".Statystyki aplikacji: wyłącz telemetrię SQL Dependency

Moje pytanie brzmi: jak wyłączyć narzędzie Sql Dependency Tracker? Spojrzałem na ApplicationInsights.config i nie mogłem znaleźć nic oczywistego. Widzę Microsoft.ApplicationInsights.DependencyCollector, który jest prawdopodobnie odpowiedzialny, ale nie chcę usunąć wszystkich typów telemetrii zależności, tylko sql.

Dzięki

Odpowiedz

18

najlepszym tutaj jest użycie procesora telemetrii odfiltrować niektóre rodzaje wniosków zależności. Sprawdź poniższe zasoby, aby uzyskać informacje.

Sampling, filtering and preprocessing telemetry in the Application Insights SDK

Request filtering in Application Insights with Telemetry Processor

Przykład procesor może wyglądać w ten sposób.

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

Czy wiesz, jakie są możliwe wartości DependencyTypeName? Chciałbym przestać śledzić dostęp do magazynu blobów – Mick

+0

@ Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? – batmaci

+1

@batmaci tak, zrobiłem. Stworzyłem ITelemetryProcessor uruchomiłem aplikację w debugerze, wstawiłem warunkowy punkt przerwania w procesorze, aż znalazłem telemetrię, którą chciałem zablokować. Zbadaj właściwości obiektu ITelemetry pozwoliło mi zdefiniować kryteria filtrowania konkretnej telemetrii, którą chciałem odfiltrować, jak pokazano w tej odpowiedzi. – Mick