2016-02-12 21 views
5

Ho iniziato a ospitare la mia prima applicazione di produzione di recente. Sono andato avanti e ho attivato gli approfondimenti sulle applicazioni, che credo abbiano molto valore. Tuttavia, sto ricevendo le statistiche che provengono dal lato dello sviluppatore, ad esempio i registri stanno registrando le voci da localhost: xxxx. Sono sicuro che c'è un modo per disattivarlo. Qualcuno può darmi dei consigli per favore?Come ignorare localhost sugli approfondimenti delle applicazioni di Azure

risposta

7
  1. È possibile filtrare già raccolto telemetria che si ottiene con F5 nell'interfaccia utente, perché ha proprietà IsDeveloperMode = true
  2. Si può avere web.config trasformazione che rimuove modulo applicativo Approfondimenti da web.debug.config e se ne va solo in web.release.config (se si hanno solo proprietà raccolte automaticamente)
  3. È possibile rimuovere la chiave di strumentazione da config e impostarla solo per la versione di rilascio nel codice: TelemetryConfiguration.Active.InsrumentationKey = "MyKey" (se si non fornisci iKey nel debug puoi ancora vedere tutta la telemetria nell'hub AI in VS 2015)
  4. Puoi usare differen t iKeys per il debug e il rilascio di nuovo impostando nel codice
  5. È possibile disattivare completamente ApplicationInsights in di debug impostando TelemetryConfiguration.Active.DisableTelemetry = true
+0

ho aggiunto le seguenti righe di codice nelle mie FilterConfig.cs:! '#if STAMPA TelemetryConfiguration .Active.DisableTelemetry = true; # endif' Anastasia, pensi che funzionerebbe? – chesco

+0

Se si dispone di un'applicazione standard che definisce RELEASE e se non si crea alcun TelemetryConfiguration personalizzato nel codice che yes. DisableTelemetry è applicabile a ciascuna TelemetryConfiguration. L'autocollection utilizza solo TelemetryConfiguration.Active. Inoltre, non so se si traccia smth prima che il codice in FilterConfig venga raggiunto (ad esempio alcune tracce). Se sì, sarebbe ovviamente inviata quella telemetria. –

8

È inoltre possibile filtrare la telemetria localhost usando TelemetryProcessor (se si utilizza l'ultima (versione provvisoria di Application Insights Web SDK). Ecco un esempio. Aggiungere questa classe al progetto:

public class LocalHostTelemetryFilter : ITelemetryProcessor 
{ 
    private ITelemetryProcessor next; 
    public LocalHostTelemetryFilter(ITelemetryProcessor next) 
    { 
     this.next = next; 
    } 

    public void Process(ITelemetry item) 
    { 
     var requestTelemetry = item as RequestTelemetry; 
     if (requestTelemetry != null && requestTelemetry.Url.Host.Equals("localhost", StringComparer.OrdinalIgnoreCase)) 
     { 
      return; 
     } 
     else 
     { 
      this.next.Process(item); 
     } 
    } 
} 

E poi registrarlo in ApplicationInsights.config:

<TelemetryProcessors> 
    <Add Type="LocalhostFilterSample.LocalHostTelemetryFilter, LocalHostFilterSample"/> 
</TelemetryProcessors> 
+0

Questo è il modo migliore perché posso inviare un'intestazione personalizzata con Selenium e questo codice può quindi ignorare i miei test. Sì, lo so, dovrei avere un ambiente di test dedicato ... certo. Ma almeno ci sto provando ..: D – ppumkin