Esportare i dati di telemetria da Application Insights
Mantenere i dati di telemetria per più tempo rispetto al periodo di conservazione standard? Oppure si vuole elaborarlo in modo specializzato? L'esportazione continua è ideale per questo scopo. Gli eventi visualizzati nel portale di Application Insights possono essere esportati nell'archiviazione in azure in formato JSON. Da qui è possibile scaricare i dati e scrivere qualsiasi tipo di codice necessario per elaborarli.
Importante
- Il 29 febbraio 2024 l'esportazione continua verrà deprecata come parte della deprecazione di Application Insights classico.
- Quando si esegue la migrazione a una risorsa di Application Insights basata sull'area di lavoro, è necessario usare le impostazioni di diagnostica per l'esportazione dei dati di telemetria. Tutte le risorse di Application Insights basate sull'area di lavoro devono usare le impostazioni di diagnostica.
- L'esportazione delle impostazioni di diagnostica potrebbe aumentare i costi. Per altre informazioni, vedere Esportazione basata su impostazioni di diagnostica.
Prima di configurare l'esportazione continua, è necessario prendere in considerazione alcune alternative:
- Il pulsante Esporta nella parte superiore di una scheda di ricerca o metrica consente di trasferire tabelle e grafici in un foglio di calcolo di Excel.
- Log Analytics offre un potente linguaggio di query per la telemetria. che consente anche di esportare i risultati.
- Se si vuole esplorare i dati in Power BI, è possibile farlo senza usare l'esportazione continua se è stata eseguita la migrazione a una risorsa basata sull'area di lavoro.
- L'API REST di accesso ai dati consente di accedere ai dati di telemetria a livello di codice.
- È anche possibile accedere alla configurazione per l'esportazione continua tramite PowerShell.
Dopo l'esportazione continua, i dati vengono copiati nella risorsa di archiviazione, in cui possono rimanere purché siano disponibili in Application Insights per il periodo di conservazione consueto.
Aree supportate
L'esportazione continua è supportata nelle aree seguenti:
- Asia sud-orientale
- Canada centrale
- India centrale
- Europa settentrionale
- Regno Unito meridionale
- Australia orientale
- Giappone orientale
- Corea centrale
- Francia centrale
- Asia orientale
- Stati Uniti occidentali
- Stati Uniti centrali
- Stati Uniti orientali 2
- Stati Uniti centro-meridionali
- Stati Uniti occidentali 2
- Sudafrica settentrionale
- Stati Uniti centro-settentrionali
- Brasile meridionale
- Svizzera settentrionale
- Australia sud-orientale
- Regno Unito occidentale
- Germania centro-occidentale
- Svizzera occidentale
- Australia centrale 2
- Emirati Arabi Uniti centrali
- Brasile sud-orientale
- Australia centrale
- Emirati Arabi Uniti settentrionali
- Norvegia orientale
- Giappone occidentale
Nota
L'esportazione continua continuerà a funzionare per le applicazioni negli Stati Uniti orientali e nell'Europa occidentale se l'esportazione è stata configurata prima del 23 febbraio 2021. Non è possibile configurare nuove regole di esportazione continua in qualsiasi applicazione negli Stati Uniti orientali o nell'Europa occidentale, indipendentemente dal momento in cui è stata creata l'applicazione.
Configurazione dell'archiviazione avanzata per l'esportazione continua
L'esportazione continua non supporta le seguenti funzionalità o configurazioni di Archiviazione di Azure:
- Uso dei firewall di Archiviazione di Azure Rete virtuale/Archiviazione di Azure con Archiviazione BLOB di Azure.
- Azure Data Lake Storage Gen2.
Creare un'esportazione continua
Nota
Un'applicazione non può esportare più di 3 TB di dati al giorno. Se vengono esportati più di 3 TB al giorno, l'esportazione verrà disabilitata. Per esportare senza un limite, usare l'esportazione basata su impostazioni di diagnostica.
Nella risorsa di Application Insights per l'app in Configura a sinistra aprire Esportazione continua e selezionare Aggiungi.
Scegliere i tipi di dati di telemetria da esportare.
Creare o selezionare un account di archiviazione di Azure in cui archiviare i dati. Per altre informazioni sulle opzioni relative ai prezzi di archiviazione, vedere la pagina Prezzi.
Selezionare Aggiungi> accountdi archiviazionedi destinazione> esportazione. Creare quindi un nuovo archivio o scegliere un archivio esistente.
Avviso
Per impostazione predefinita, il percorso di archiviazione verrà impostato sulla stessa area geografica della risorsa di Application Insights. Se si archivia in un'area diversa, è possibile che vengano addebitati addebiti per il trasferimento.
Creare o selezionare un contenitore nella risorsa di archiviazione.
Nota
Dopo aver creato l'esportazione, i dati appena inseriti inizieranno a passare a Archiviazione BLOB di Azure. L'esportazione continua trasmette solo nuovi dati di telemetria creati o inseriti dopo l'abilitazione dell'esportazione continua. Tutti i dati esistenti prima di abilitare l'esportazione continua non verranno esportati. Non esiste alcun modo supportato per esportare in modo retroattivo i dati creati in precedenza usando l'esportazione continua.
Può verificarsi un ritardo di circa un'ora prima che i dati vengano visualizzati nella risorsa di archiviazione.
Al termine della prima esportazione, si troverà la struttura seguente nel contenitore di archiviazione BLOB. Questa struttura varia a seconda dei dati raccolti.
Nome | Descrizione |
---|---|
Disponibilità | Segnala i test Web di disponibilità. |
Event | Eventi personalizzati generati da TrackEvent(). |
Eccezioni | Segnala le eccezioni nel server e nel browser. |
Messaggi | Inviati da TrackTrace e dagli adattatori di registrazione. |
Metriche | Generato dalle chiamate delle API di metrica. |
PerformanceCounters | Contatori delle prestazioni raccolti da Application Insights. |
Richieste | Inviate da TrackRequest. I moduli standard usano le richieste per il tempo di risposta del server di report, misurati nel server. |
Modifica esportazione continua
Selezionare Esportazione continua e selezionare l'account di archiviazione da modificare.
Arrestare l'esportazione continua
Per arrestare l'esportazione, selezionare Disabilita. Quando si seleziona Abilita di nuovo, l'esportazione viene riavviata con nuovi dati. Non si otterranno i dati che arrivano nel portale mentre l'esportazione è stata disabilitata.
Per interrompere l'esportazione in modo permanente, eliminare l'esportazione. Questa operazione non elimina i dati dalla risorsa di archiviazione.
Non si riesce ad aggiungere o modificare un'esportazione?
Per aggiungere o modificare le esportazioni, è necessario avere i diritti di accesso Proprietario, Collaboratore o Collaboratore di Application Insights. Informazioni sui ruoli.
Quali eventi si ottengono?
I dati esportati sono i dati di telemetria non elaborati ricevuti dall'applicazione con dati di posizione aggiunti dall'indirizzo IP client.
I dati eliminati dal campionamento non sono inclusi nei dati esportati.
Altre metriche calcolate non sono incluse. Ad esempio, non si procederà all'esportazione dell'uso medio della CPU, ma si procederà all'esportazione dei dati di telemetria non elaborati a partire dai quali viene calcolata la media.
I dati includono anche i risultati di ogni test Web di disponibilità impostato.
Nota
Se l'applicazione invia molti dati, la funzionalità di campionamento potrebbe funzionare e inviare solo una frazione dei dati di telemetria generati. Altre informazioni sul campionamento.
Esaminare i dati
È possibile esaminare lo spazio di archiviazione direttamente nel portale. Selezionare Home nel menu più a sinistra. Nella parte superiore in cui si dice servizi di Azure selezionare Account di archiviazione. Selezionare il nome dell'account di archiviazione e nella pagina Panoramica selezionareBLOB diServizi>. Infine, selezionare il nome del contenitore.
Per esaminare Archiviazione di Azure in Visual Studio, selezionare Visualizza>Cloud Explorer. Se non si dispone di tale comando di menu, è necessario installare Azure SDK. Aprire la finestra di dialogo Nuovo progetto, espandere Visual C#/Cloud e selezionare Recupera Microsoft Azure SDK per .NET.
Quando si apre l'archivio BLOB, si noterà un contenitore con un set di file BLOB. Verrà visualizzato l'URI di ogni file derivato dal nome della risorsa di Application Insights, dalla chiave di strumentazione e dal tipo di telemetria, dalla data e dall'ora. Il nome della risorsa è tutto minuscolo e la chiave di strumentazione omette trattini.
Nota
Il 31 marzo 2025, il supporto per l'inserimento delle chiavi di strumentazione terminerà. L'inserimento delle chiavi di strumentazione continuerà a funzionare, ma non verranno più forniti aggiornamenti o supporto per la funzionalità. Passare alle stringhe di connessione per sfruttare le nuove funzionalità.
La data e l'ora sono UTC e sono quando i dati di telemetria sono stati archiviati nell'archivio, non l'ora in cui è stata generata. Per questo motivo, se si scrive codice per scaricare i dati, può spostarsi in modo lineare attraverso i dati.
Di seguito è riportato il formato del percorso:
$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"
Dove:
blobCreationTimeUtc
è l'ora in cui il BLOB è stato creato nell'archiviazione di staging interna.blobDeliveryTimeUtc
è l'ora in cui il BLOB viene copiato nell'archiviazione di destinazione di esportazione.
Formato dati
I dati vengono formattati in modo che:
Ogni BLOB è un file di testo contenente più
\n
righe separate. Contiene i dati di telemetria elaborati in un periodo di tempo di circa mezzo minuto.Ogni riga rappresenta un punto dati di telemetria, ad esempio una richiesta o una visualizzazione pagina.
Ogni riga è un documento JSON non formattato. Se si desidera visualizzare le righe, aprire il BLOB in Visual Studio e selezionare Modifica>file di formatoavanzato>.
Gli intervalli di tempo sono espressi in tick, dove 10.000 tick = 1 ms. Questi valori, ad esempio, indicano un tempo di 1 ms per inviare una richiesta dal browser, 3 ms per riceverla e 1,8 s per elaborare la pagina nel browser:
"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}
Per un riferimento dettagliato al modello di dati per i tipi di proprietà e i valori, vedere Modello di dati di esportazione di Application Insights.
Elaborare i dati
In una scala ridotta è possibile scrivere un codice per separare i dati e leggerli in un foglio di calcolo. Ad esempio:
private IEnumerable<T> DeserializeMany<T>(string folderName)
{
var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
foreach (var file in files)
{
using (var fileReader = File.OpenText(file))
{
string fileContent = fileReader.ReadToEnd();
IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
foreach (var entity in entities)
{
yield return JsonConvert.DeserializeObject<T>(entity);
}
}
}
}
Per un esempio di codice più grande, vedere Uso di un ruolo di lavoro.
Eliminare i vecchi dati
È responsabile della gestione della capacità di archiviazione e dell'eliminazione dei dati precedenti, se necessario.
Rigenerare la chiave di archiviazione
Se si modifica la chiave per l'archiviazione, l'esportazione continua non funzionerà più. Verrà visualizzata una notifica nell'account Azure.
Selezionare la scheda Esportazione continua e modificare l'esportazione . Modificare il valoreEsporta destinazione , ma lasciare selezionata la stessa risorsa di archiviazione. Selezionare OK per confermare.
L'esportazione continua verrà riavviata.
Esempi di esportazione
Per esempi di esportazione, vedere:
Su larga scala, prendere in considerazione i cluster Hadoop HDInsight nel cloud. HDInsight offre diverse tecnologie per la gestione e l'analisi dei Big Data. È possibile usarlo per elaborare i dati esportati da Application Insights.
Domande frequenti
Questa sezione fornisce risposte alle domande comuni.
È possibile ottenere un download one-time di un grafico?
per un telefono Android, Nella parte superiore della scheda selezionare Esporta dati.
È stata configurata un'esportazione, ma perché non sono presenti dati nell'archivio?
Application Insights ha ricevuto eventuali dati di telemetria dall'app dal momento in cui si è impostata l'esportazione? Si riceveranno solo nuovi dati.
Si è tentato di configurare un'esportazione, ma perché è stato negato l'accesso?
Se l'account è di proprietà dell'organizzazione, è necessario essere un membro dei gruppi Proprietari o Collaboratori.
È possibile eseguire un'esportazione direttamente al negozio locale?
No. Il motore di esportazione funziona attualmente solo con Archiviazione di Azure in questo momento.
Esiste un limite alla quantità di dati da inserire nell'archivio personale?
No. L'inserimento dei dati continuerà fino a quando non si elimina l'esportazione. Si arresterà se si raggiungeranno i limiti esterni per l'archiviazione BLOB, ma questo limite è enorme. Spetta all'utente controllare quante risorse di archiviazione usare.
Quanti BLOB dovrebbero essere visualizzati nella risorsa di archiviazione?
- Per ogni tipo di dati selezionato per l'esportazione, viene creato un nuovo BLOB ogni minuto, se i dati sono disponibili.
- Per le applicazioni con traffico elevato, vengono allocate unità di partizione aggiuntive. In questo caso ogni unità crea un BLOB ogni minuto.
È stata rigenerata la chiave nell'archiviazione o è stata modificata il nome del contenitore, ma perché l'esportazione non funziona?
Modificare l'esportazione e selezionare la scheda Esporta destinazione . Lasciare selezionata la stessa risorsa di archiviazione selezionata in precedenza e selezionare OK per confermare. L'esportazione verrà riavviata. Se la modifica è stata eseguita negli ultimi giorni, non si perderanno i dati.
È possibile sospendere l'esportazione?
Sì. Selezionare Disabilita.
Esempi di codice
- Esempio di analisi di flusso
- Esportare in SQL usando Analisi di flusso
- Informazioni di riferimento dettagliate sul modello di dati per tipi e valori di proprietà
Esportazione basata sulle impostazioni di diagnostica
L'esportazione delle impostazioni di diagnostica è preferibile perché offre funzionalità aggiuntive:
- Account di archiviazione di Azure con reti virtuali, firewall e collegamenti privati.
- Esporta in Hub eventi di Azure.
Le impostazioni di diagnostica esportano ulteriormente le differenze rispetto all'esportazione continua nei modi seguenti:
- Schema aggiornato.
- I dati di telemetria vengono inviati man mano che arrivano anziché in caricamenti in batch.
Importante
Potrebbero essere addebitati costi aggiuntivi a causa di un aumento delle chiamate alla destinazione, ad esempio un account di archiviazione.
Per eseguire la migrazione all'esportazione delle impostazioni di diagnostica:
- Abilitare le impostazioni di diagnostica in Application Insights classico.
- Configurare l'esportazione dei dati: selezionare Impostazioni> didiagnostica Aggiungi impostazione di diagnostica dall'interno della risorsa di Application Insights.
- Verificare che la nuova esportazione dei dati sia configurata come esportazione continua
Attenzione
Per archiviare i log di diagnostica in un'area di lavoro Log Analytics, è necessario considerare due punti per evitare di visualizzare dati duplicati in Application Insights:
- L'area di lavoro di destinazione non può essere la stessa area di lavoro Log Analytics su cui si basa la risorsa di Application Insights.
- L'utente di Application Insights non può avere accesso a entrambe le aree di lavoro. Impostare la modalità di controllo di accesso di Log Analytics su Richiede autorizzazioni per l'area di lavoro. Tramite il controllo degli accessi in base al ruolo di Azure, assicurarsi che l'utente abbia accesso solo all'area di lavoro Log Analytics su cui si basa la risorsa di Application Insights.
Questi passaggi sono necessari perché Application Insights accede ai dati di telemetria tra le proprie risorse (incluse le aree di lavoro Log Analytics) per fornire operazioni di transazione end-to-end complete e mappe accurate delle applicazioni. Poiché i log di diagnostica usano gli stessi nomi di tabella, è possibile che siano presenti dati di telemetria duplicati se l'utente ha accesso a più risorse contenenti gli stessi dati.
Modello di dati di esportazione di Application Insights
Questa tabella elenca le proprietà di telemetria inviate al portale dagli SDK di Application Insights . Queste proprietà saranno visualizzate nell'output dei dati di Esportazione continua. Sono visibili anche nei filtri delle proprietà in Esplora metriche e Ricerca diagnostica.
Punti da notare:
[0]
in queste tabelle indica un punto nel percorso in cui è necessario inserire un indice, ma non è sempre 0.- Le durate sono espresse in decimi di microsecondo, quindi 10000000 == 1 secondo.
- Date e ore sono in formato UTC e vengono specificate nel formato ISO
yyyy-MM-DDThh:mm:ss.sssZ
Esempio
// A server report about an HTTP request
{
"request": [
{
"urlData": { // derived from 'url'
"host": "contoso.org",
"base": "/",
"hashTag": ""
},
"responseCode": 200, // Sent to client
"success": true, // Default == responseCode<400
// Request id becomes the operation id of child events
"id": "fCOhCdCnZ9I=",
"name": "GET Home/Index",
"count": 1, // 100% / sampling rate
"durationMetric": {
"value": 1046804.0, // 10000000 == 1 second
// Currently the following fields are redundant:
"count": 1.0,
"min": 1046804.0,
"max": 1046804.0,
"stdDev": 0.0,
"sampledValue": 1046804.0
},
"url": "/"
}
],
"internal": {
"data": {
"id": "7f156650-ef4c-11e5-8453-3f984b167d05",
"documentVersion": "1.61"
}
},
"context": {
"device": { // client browser
"type": "PC",
"screenResolution": { },
"roleInstance": "WFWEB14B.fabrikam.net"
},
"application": { },
"location": { // derived from client ip
"continent": "North America",
"country": "United States",
// last octagon is anonymized to 0 at portal:
"clientip": "168.62.177.0",
"province": "",
"city": ""
},
"data": {
"isSynthetic": true, // we identified source as a bot
// percentage of generated data sent to portal:
"samplingRate": 100.0,
"eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
},
"user": {
"isAuthenticated": false,
"anonId": "us-tx-sn1-azr", // bot agent id
"anonAcquisitionDate": "0001-01-01T00:00:00Z",
"authAcquisitionDate": "0001-01-01T00:00:00Z",
"accountAcquisitionDate": "0001-01-01T00:00:00Z"
},
"operation": {
"id": "fCOhCdCnZ9I=",
"parentId": "fCOhCdCnZ9I=",
"name": "GET Home/Index"
},
"cloud": { },
"serverDevice": { },
"custom": { // set by custom fields of track calls
"dimensions": [ ],
"metrics": [ ]
},
"session": {
"id": "65504c10-44a6-489e-b9dc-94184eb00d86",
"isFirst": true
}
}
}
Contesto
Tutti i tipi di telemetria sono accompagnati da una sezione di contesto. Non tutti questi campi vengono trasmessi con ogni punto dati.
Percorso | Type | Note |
---|---|---|
context.custom.dimensions [0] | oggetto [ ] | Coppie di stringhe chiave-valore impostate dal parametro delle proprietà personalizzate. La lunghezza massima delle chiavi 100, la lunghezza massima dei valori è 1024. Più di 100 valori univoci. La proprietà può essere cercata, ma non può essere usata per la segmentazione. Massimo 200 chiavi per ikey. |
context.custom.metrics [0] | oggetto [ ] | Coppie di chiave-valore impostate dai parametri delle misurazioni personalizzate e da TrackMetrics. La lunghezza massima delle chiavi 100, i valori possono essere numerici. |
context.data.eventTime | string | UTC |
context.data.isSynthetic | boolean | La richiesta proviene da un robot o un test Web. |
context.data.samplingRate | d'acquisto | Percentuale di telemetria generata dall'SDK inviato al portale. L'intervallo è 0,0-100,0. |
context.device | object | Dispositivo client |
context.device.browser | string | IE, Chrome, ... |
context.device.browserVersion | string | Chrome 48.0, ... |
context.device.deviceModel | string | |
context.device.deviceName | string | |
context.device.id | string | |
context.device.locale | string | en-GB, de-DE, ... |
context.device.network | string | |
context.device.oemName | string | |
context.device.os | string | |
context.device.osVersion | string | Sistema operativo host |
context.device.roleInstance | string | ID dell'host server |
context.device.roleName | string | |
context.device.screenResolution | string | |
context.device.type | string | PC, Browser,... |
context.location | object | Derivata da clientip . |
context.location.city | string | Derivato da clientip , se noto |
context.location.clientip | string | L'ultimo ottagono viene reso anonimo come 0. |
context.location.continent | string | |
context.location.country | string | |
context.location.province | string | Stato o provincia |
context.operation.id | string | Gli elementi che hanno lo stesso operation id valore vengono visualizzati come Elementi correlati nel portale. In genere l'oggetto request id . |
context.operation.name | string | URL o nome richiesta |
context.operation.parentId | string | Consente elementi correlati annidati. |
context.session.id | string | Id di un gruppo di operazioni dalla stessa origine. Un periodo di 30 minuti senza operazioni segnala la fine di una sessione. |
context.session.isFirst | boolean | |
context.user.accountAcquisitionDate | string | |
context.user.accountId | string | |
context.user.anonAcquisitionDate | string | |
context.user.anonId | string | |
context.user.authAcquisitionDate | string | Utente autenticato |
context.user.authId | string | |
context.user.isAuthenticated | boolean | |
context.user.storeRegion | string | |
internal.data.documentVersion | string | |
internal.data.id | string | Unique id assegnato quando un elemento viene inserito in Application Insights |
evento
Eventi personalizzati generati da TrackEvent().
Percorso | Type | Note |
---|---|---|
event [0] count | numero intero | 100/(frequenza di campionamento ). Ad esempio, 4 => 25%. |
event [0] name | string | Nome evento. Lunghezza massima: 250. |
event [0] url | string | |
event [0] urlData.base | string | |
event [0] urlData.host | string |
Eccezioni
Segnala le eccezioni nel server e nel browser.
Percorso | Type | Note |
---|---|---|
basicException [0] assembly | string | |
basicException [0] count | numero intero | 100/(frequenza di campionamento ). Ad esempio, 4 => 25%. |
basicException [0] exceptionGroup | string | |
basicException [0] exceptionType | string | |
basicException [0] failedUserCodeMethod | string | |
basicException [0] failedUserCodeAssembly | string | |
basicException [0] handledAt | string | |
basicException [0] hasFullStack | boolean | |
basicException [0] id |
string | |
basicException [0] method | string | |
basicException [0] message | string | Messaggio dell'eccezione. Lunghezza massima: 10 K. |
basicException [0] outerExceptionMessage | string | |
basicException [0] outerExceptionThrownAtAssembly | string | |
basicException [0] outerExceptionThrownAtMethod | string | |
basicException [0] outerExceptionType | string | |
basicException [0] outerId | string | |
basicException [0] parsedStack [0] assembly | string | |
basicException [0] parsedStack [0] fileName | string | |
basicException [0] parsedStack [0] level | numero intero | |
basicException [0] parsedStack [0] line | numero intero | |
basicException [0] parsedStack [0] method | string | |
basicException [0] stack | string | Lunghezza massima: 10 K. |
basicException [0] typeName | string |
Messaggi di traccia
Inviati da TrackTrace e dagli adattatori di registrazione.
Percorso | Type | Note |
---|---|---|
message [0] loggerName | string | |
message [0] parameters | string | |
message [0] raw | string | Messaggio del log, lunghezza massima 10.000 caratteri. |
message [0] severityLevel | string |
Dipendenza remota
Inviata da TrackDependency. Usata per segnalare le prestazioni e l'utilizzo delle chiamate alle dipendenze nel server e delle chiamate AJAX nel browser.
Percorso | Type | Note |
---|---|---|
remoteDependency [0] async | boolean | |
remoteDependency [0] baseName | string | |
remoteDependency [0] commandName | string | Ad esempio "home/index" |
remoteDependency [0] count | numero intero | 100/(frequenza di campionamento ). Ad esempio, 4 => 25%. |
remoteDependency [0] dependencyTypeName | string | HTTP, SQL... |
remoteDependency [0] durationMetric.value | d'acquisto | Tempo intercorso tra la chiamata e il completamento della risposta da parte di una dipendenza |
remoteDependency [0] id |
string | |
remoteDependency [0] name | string | URL. Lunghezza massima: 250. |
remoteDependency [0] resultCode | string | Dalla dipendenza HTTP |
remoteDependency [0] success | boolean | |
remoteDependency [0] type | string | HTTP, SQL... |
remoteDependency [0] url | string | Lunghezza massima: 2000 |
remoteDependency [0] urlData.base | string | Lunghezza massima: 2000 |
remoteDependency [0] urlData.hashTag | string | |
remoteDependency [0] urlData.host | string | Lunghezza massima: 200 |
Requests
Inviate da TrackRequest. I moduli standard le usano per segnalare il tempo di risposta del server, calcolato nel server.
Percorso | Type | Note |
---|---|---|
request [0] count | numero intero | 100/(frequenza di campionamento ). Ad esempio, 4 => 25%. |
request [0] durationMetric.value | d'acquisto | Tempo tra l'arrivo della richiesta e la risposta. 1e7 == 1 s |
richiesta [0] id |
string | Operation id |
request [0] name | string | GET/POST + base URL. Lunghezza massima: 250 |
request [0] responseCode | numero intero | Risposta HTTP inviata al client |
request [0] success | boolean | Valore predefinito == (responseCode < 400) |
request [0] url | string | Host non incluso |
request [0] urlData.base | string | |
request [0] urlData.hashTag | string | |
request [0] urlData.host | string |
Prestazioni visualizzazioni pagina
Inviate dal browser. Misura il tempo necessario per elaborare una pagina, da quando l'utente avvia la richiesta al completamento della visualizzazione (escluse le chiamate AJAX asincrone).
I valori del contesto indicano la versione del sistema operativo client e del browser.
Percorso | Type | Note |
---|---|---|
clientPerformance [0] clientProcess.value | numero intero | Tempo compreso tra la fine della ricezione del codice HTML e la visualizzazione della pagina. |
clientPerformance [0] name | string | |
clientPerformance [0] networkConnection.value | numero intero | Tempo necessario per stabilire una connessione di rete. |
clientPerformance [0] receiveRequest.value | numero intero | Tempo compreso tra la fine dell'invio della richiesta e la ricezione del codice HTML nella risposta. |
clientPerformance [0] sendRequest.value | numero intero | Tempo necessario per inviare la richiesta HTTP. |
clientPerformance [0] total.value | numero intero | Tempo compreso tra l'inizio dell'invio della richiesta e la visualizzazione della pagina. |
clientPerformance [0] url | string | URL di questa richiesta |
clientPerformance [0] urlData.base | string | |
clientPerformance [0] urlData.hashTag | string | |
clientPerformance [0] urlData.host | string | |
clientPerformance [0] urlData.protocol | string |
Visualizzazioni pagina
Inviate da trackPageView() o stopTrackPage
Percorso | Type | Note |
---|---|---|
view [0] count | numero intero | 100/(frequenza di campionamento ). Ad esempio, 4 => 25%. |
view [0] durationMetric.value | numero intero | Valore facoltativo impostato in trackPageView() o da startTrackPage() - stopTrackPage(). Non corrisponde ai valori di clientPerformance. |
view [0] name | string | Titolo della pagina. Lunghezza massima: 250 |
view [0] url | string | |
view [0] urlData.base | string | |
view [0] urlData.hashTag | string | |
view [0] urlData.host | string |
Disponibilità
Segnala i test Web di disponibilità.
Percorso | Type | Note |
---|---|---|
availability [0] availabilityMetric.name | string | availability |
availability [0] availabilityMetric.value | d'acquisto | 1,0 o 0,0 |
availability [0] count | numero intero | 100/(frequenza di campionamento ). Ad esempio, 4 => 25%. |
availability [0] dataSizeMetric.name | string | |
availability [0] dataSizeMetric.value | numero intero | |
availability [0] durationMetric.name | string | |
availability [0] durationMetric.value | d'acquisto | Durata del test. 1e7==1 s |
availability [0] message | string | Diagnostica di errori |
availability [0] result | string | Esito positivo o negativo |
availability [0] runLocation | string | Origine geografica della richiesta HTTP |
availability [0] testName | string | |
availability [0] testRunId | string | |
availability [0] testTimestamp | string |
Metriche
Generata da TrackMetric().
Il valore della metrica è disponibile in context.custom.metrics[0]
Ad esempio:
{
"metric": [ ],
"context": {
...
"custom": {
"dimensions": [
{ "ProcessId": "4068" }
],
"metrics": [
{
"dispatchRate": {
"value": 0.001295,
"count": 1.0,
"min": 0.001295,
"max": 0.001295,
"stdDev": 0.0,
"sampledValue": 0.001295,
"sum": 0.001295
}
}
]
}
}
}
Informazioni sui valori della metrica
I valori della metrica, nei report della metrica e altrove, vengono segnalati con una struttura di oggetti standard. Ad esempio:
"durationMetric": {
"name": "contoso.org",
"type": "Aggregation",
"value": 468.71603053650279,
"count": 1.0,
"min": 468.71603053650279,
"max": 468.71603053650279,
"stdDev": 0.0,
"sampledValue": 468.71603053650279
}
Attualmente (ma la situazione potrebbe cambiare in futuro) di tutti i valori segnalati dai moduli SDK standard sono utili count==1
e solo i campi name
e value
. L'unico caso in cui sarebbero diversi è quello in cui si scrivono chiamate TrackMetric personalizzate in cui si impostano gli altri parametri.
Lo scopo degli altri campi è quello di consentire l'aggregazione della metrica nell'SDK, per ridurre il traffico verso il portale. È possibile, ad esempio, calcolare la media di diverse letture successive prima di inviare il report di ogni metrica. Si calcolerà quindi la deviazione minima, massima e standard e il valore di aggregazione (somma o media) e si imposterà il conteggio sul numero di letture rappresentate dal report.
Nelle tabelle precedenti è stato omesso il conteggio dei campi usati raramente, min, max, stdDev e sampledValue.
Se è necessario ridurre il volume della telemetria, anziché aggregare in anticipo la metrica, è possibile usare il campionamento .
Durate
Se non indicato diversamente, le durate vengono espresse in decimi di microsecondo, quindi 10000000,0 corrisponde a 1 secondo.