Application Insights: domande frequenti

Problemi di configurazione

Problemi nella configurazione di:

Non sono disponibili dati dal server

Si può usare Application Insights con ...?

È gratuito?

Sì, per l'uso sperimentale. Nel piano tariffario Basic l'applicazione può inviare una determinata quantità di dati gratuitamente ogni mese. La capacità massima disponibile è sufficiente per lo sviluppo e la pubblicazione di un'app per un numero ridotto di utenti. È possibile impostare un limite per evitare l'elaborazione di una quantità di dati maggiore a quella specificata.

I volumi più grandi di telemetria vengono addebitati per GB. Vedere alcuni suggerimenti su come limitare gli addebiti.

Il piano Enterprise comporta un costo per ogni giorno in cui i singoli nodi del server Web inviano dati di telemetria. È appropriato se si vuole usare un'esportazione continua su larga scala.

Leggere il piano tariffario.

Quanto costa?

  • Aprire la pagina Funzionalità + prezzi in una risorsa di Application Insights. È incluso un grafico dell'utilizzo recente. Se si vuole, è possibile impostare un limite di volume di dati.
  • Aprire il pannello Fatturazione di Azure per visualizzare i costi di tutte le risorse.

Quali modifiche apporta Application Insights al progetto?

Dipende dal tipo di progetto. Per un'applicazione Web:

  • Aggiunge tre file al progetto:

    • ApplicationInsights.config.
    • ai.js
  • Installa i pacchetti NuGet seguenti:

    • Application Insights API , ovvero l'API principale
    • Application Insights API for Web Applications , che consente di inviare i dati di telemetria dal server
    • Application Insights API for JavaScript Applications , che consente di inviare i dati di telemetria dal client

      I pacchetti includono gli assembly seguenti:

    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Inserire elementi in:

    • Web.config
    • packages.config
  • (Solo per i muovi progetti. Se si aggiunge Application Insights a un progetto esistente, l'operazione deve essere eseguita manualmente.) Inserisce frammenti nel codice client e server per inizializzarli con l'ID risorsa di Application Insights. Ad esempio, in un'app MVC il codice viene inserito nella pagina master Views/Shared/_Layout.cshtml

In che modo è possibile effettuare l'aggiornamento da versioni dell'SDK meno recenti?

Vedere le note sulla versione dell'SDK appropriato per il tipo di applicazione.

In che modo è possibile modificare la risorsa di Azure che riceve i dati del progetto?

In Esplora soluzioni fare clic con il pulsante destro del mouse su ApplicationInsights.config e scegliere Aggiorna Application Insights. È possibile inviare i dati a una risorsa nuova o esistente in Azure. L'aggiornamento guidato modifica la chiave di strumentazione in ApplicationInsights.config, che determina la destinazione dei dati inviati dall'SDK del server. A meno che non venga deselezionata l'opzione "Aggiorna tutto", modificherà anche la chiave in cui appare nelle pagine Web.

Che cos'è Status Monitor?

Un'app desktop che è possibile usare nel server Web IIS per configurare Application Insights nelle app Web. Non raccoglie dati di telemetria: è possibile interromperlo se non si sta configurando un'app.

Altre informazioni.

Quali dati di telemetria vengono raccolti da Application Insights?

Da app Web del server:

Da pagine Web dei client:

Da altre origini, se sono configurate:

È possibile filtrare o modificare alcuni dati di telemetria?

Sì, nel server è possibile scrivere:

  • Un processore di telemetria per filtrare o aggiungere proprietà agli elementi di telemetria selezionati prima che vengano inviati dall'app.
  • Un inizializzatore di telemetria per aggiungere proprietà a tutti gli elementi della telemetria.

Vedere altre informazioni per ASP.NET o Java.

Come vengono calcolati i dati su città, paesi e altre aree geografiche?

Viene cercato l'indirizzo IP (IPv4 o IPv6) del client Web tramite GeoLite2.

  • Telemetria del browser: vengono raccolti gli indirizzi IP del mittente.
  • Telemetria del server: il modulo di Application Insights raccoglie l'indirizzo IP del client. L'indirizzo non viene raccolto se è impostato X-Forwarded-For.

È possibile configurare ClientIpHeaderTelemetryInitializer per ottenere l'indirizzo IP da un'intestazione diversa. Ad esempio, in alcuni sistemi viene spostato da un proxy, da un bilanciamento del carico o da una rete CDN a X-Originating-IP. Altre informazioni.

È possibile usare Power BI per visualizzare i dati di telemetria della richiesta in una mappa.

Per quanto tempo vengono conservati i dati nel portale? Tale conservazione è sicura?

Vedere l'argomento relativo a conservazione dei dati e privacy.

È possibile che vengano inviate informazioni personali (PII) nella telemetria?

Ciò si verifica se il codice invia tali dati. E può verificarsi anche se le variabili dell'analisi dello stack includono informazioni personali. Il team di sviluppo deve eseguire valutazioni dei rischi per garantire che le informazioni personali vengono gestite in maniera appropriata. Vedere altre informazioni sulla conservazione e privacy dei dati.

Le ultime otto cifre dell'indirizzo Web del client vengono sempre impostate su 0 dopo l'inserimento dal portale.

L'iKey dell'utente è visibile nell'origine della pagina Web.

  • Questo è una pratica comune nelle soluzioni di monitoraggio.
  • Questo valore non può essere usato per appropriarsi dei dati personali.
  • Potrebbe essere usato per alterare gli avvisi su dati o trigger.
  • Nessun cliente ha segnalato tali problemi.

È possibile:

  • Usare due valori iKey separati, ovvero due risorse separate di Application Insights, per i dati del client e del server. oppure
  • Scrivere un proxy che viene eseguito nel server in modo che il client Web invii i dati tramite tale proxy.

Come visualizzare dati POST in Ricerca diagnostica?

I dati POST non vengono registrati automaticamente, ma è possibile usare una chiamata TrackTrace; inserire i dati nel parametro del messaggio, che ha limiti di dimensione più ampi rispetto alle proprietà della stringa, nonostante non sia possibile applicare filtri.

È preferibile usare una o più risorse di Application Insights?

Usare una singola risorsa per tutti i componenti o i ruoli in un singolo sistema aziendale. Usare risorse separate per sviluppo, test e versioni di rilascio e per applicazioni indipendenti.

Come è possibile modificare dinamicamente la chiave di strumentazione?

Che cosa sono i conteggi utente e sessione?

  • JavaScript SDK imposta un cookie utente nel client Web, per identificare gli utenti abituali, e un cookie di sessione per raggruppare le attività.
  • Se non c'è uno script lato client, è possibile impostare cookie per il server.
  • Se un utente reale usa il sito in browser diversi o esegue una navigazione privata o in incognito oppure usa computer diversi, viene inclusi più di una volta nei conteggi.
  • Per identificare un utente connesso a più computer e browser, aggiungere una chiamata a setAuthenticatedUserContect().

In Application Insights sono state abilitate tutte le funzionalità?

Elementi che dovrebbero essere visualizzati Come ottenerli Perché si vuole ottenerli
Grafici di disponibilità Test Web Stabilire se l'app Web è attiva
Prestazioni dell'app server: tempi di risposta, ... Aggiungere Application Insights al progetto o installare Status Monitor di Application Insights nel server (o scrivere il codice per tenere traccia delle dipendenze) Rilevare i problemi di prestazioni
Telemetria di dipendenza Installare Status Monitor di Application Insights nel server Diagnosticare i problemi relativi a database o altri componenti esterni
Ricavare analisi dello stack dalle eccezioni Inserire chiamate TrackException nel codice (ma alcune sono segnalate automaticamente) Rilevare e diagnosticare le eccezioni
Eseguire la ricerca di tracce dei log Aggiungere un adattatore di registrazione Diagnosticare le eccezioni, problemi di prestazioni
Nozioni di base dell'utilizzo del client: visualizzazioni pagina, sessioni, ... Inizializzatore JavaScript nelle pagine Web Analisi dell'utilizzo
Metriche personalizzate client Rilevamento delle chiamate nelle pagine Web Migliorare l'esperienza utente
Metriche personalizzate server Rilevamento delle chiamate nel server Business intelligence

Perché i conteggi nei grafici di ricerca e di metrica non sono uguali?

Il campionamento riduce il numero di elementi di telemetria (richieste, eventi personalizzati e così via) inviati effettivamente dall'app al portale. Nel grafico di ricerca, viene visualizzato il numero di elementi effettivamente ricevuti. Nei grafici di metrica che visualizzano un conteggio degli eventi, è possibile vedere il numero di eventi originali che si sono verificati.

Ogni elemento trasmesso include una proprietà itemCount che visualizza quanti eventi originali rappresenta tale elemento. Per osservare un campionamento in esecuzione, è possibile eseguire questa query in Analytics:

    requests | summarize original_events = sum(itemCount), transmitted_events = count()

Automazione

Configurazione di Application Insights

È possibile scrivere script di PowerShell tramite Monitoraggio risorse di Azure per:

  • Creare e aggiornare risorse di Application Insights.
  • Impostare il piano tariffario.
  • Ottenere la chiave di strumentazione.
  • Aggiungere un avviso di metrica.
  • Aggiungere un test di disponibilità.

Non è possibile impostare un report di esplorazione delle metriche o impostare un'esportazione continua.

Esecuzione di query sui dati di telemetria

Usare l'API REST per eseguire le query di Analytics.

Come è possibile impostare un avviso per un evento?

Gli avvisi di Azure si applicano solo alle metriche. Creare una metrica personalizzata che supera una soglia di valori ogni volta che si verifica l'evento. Impostare quindi un avviso per la metrica. Si noti che verrà inviata una notifica ogni volta che la metrica supera la soglia in entrambe le direzioni. Non si riceverà una notifica fino al primo superamento, indipendentemente dal valore iniziale. C'è sempre una latenza di pochi minuti.

Ci sono costi per il trasferimento dati tra un'app Web di Azure e Application Insights?

  • Se l'app Web di Azure è ospitata in un data center in cui è presente un endpoint di raccolta di Application Insights, non è previsto alcun addebito.
  • Se non c'è nessun endpoint nel data center host, la telemetria dell'app sarà soggetta agli addebiti in uscita di Azure.

Ciò non dipende da dove è ospitata la risorsa di Application Insights. Dipende solo dalla distribuzione degli endpoint.

È possibile inviare dati di telemetria al portale di Application Insights?

È consigliabile usare gli SDK di Microsoft e usare l'API SDK (app-insights-api-custom-events-metrics.md). Sono disponibili varianti dell'SDK per diverse piattaforme. Gli SDK gestiscono bufferring, compressione, limitazione, tentativi e così via. Tuttavia, lo schema di inserimento e il protocollo di endpoint sono pubblici.

È possibile monitorare un server Web Intranet?

Di seguito vengono illustrati due metodi:

Porta firewall

Consentire al server Web di inviare dati di telemetria agli endpoint https://dc.services.visualstudio.com:443 e https://rt.services.visualstudio.com:443.

Proxy

Instradare il traffico dal server a un gateway nella rete Intranet, impostando quanto segue in ApplicationInsights.config:

<TelemetryChannel>
    <EndpointAddress>your gateway endpoint</EndpointAddress>
</TelemetryChannel>

Il gateway deve indirizzare il traffico a https://dc.services.visualstudio.com:443/v2/track

È possibile eseguire test Web di disponibilità in un server Intranet?

I test Web vengono eseguiti in punti di presenza distribuiti in tutto il globo. Sono disponibili due soluzioni:

  • Porta di firewall: consentire al server di ricevere richieste dall'elenco esteso e modificabile degli agenti di test Web.
  • Scrivere un codice personalizzato per inviare richieste periodiche al server dall'interno della rete Intranet. A tale scopo è anche possibile eseguire test Web di Visual Studio. Il tester può inviare i risultati ad Application Insights tramite l'API TrackAvailability().

Altre risposte