Esportare i dati di telemetria da Application Insights
Conservare i dati di telemetria per un periodo di conservazione più lungo del periodo di conservazione standard? O si vuole elaborarlo in qualche 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
- A partire dal 29 febbraio 2024, l'esportazione continua viene ritirata.
- 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 sulle impostazioni di diagnostica.
Prima di configurare l'esportazione continua, è necessario prendere in considerazione alcune alternative:
- Il pulsante Esporta nella parte superiore di una scheda metriche o di ricerca consente di trasferire tabelle e grafici in un foglio di calcolo di Excel.
- Log Analytics offre un linguaggio di query avanzato per i dati di 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 copia i dati nella risorsa di archiviazione, in cui può rimanere fino a quando si preferisce, è ancora disponibile in Application Insights per il periodo di conservazione consueto.
Aree geografiche 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
- West US 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 meridionale
- 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 funzionalità o le configurazioni Archiviazione di Azure seguenti:
- Uso di firewall Rete virtuale/Archiviazione di Azure 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 sulle 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 Archiviazione di Azure in cui archiviare i dati. Per altre informazioni sulle opzioni relative ai prezzi di archiviazione, vedere la pagina Prezzi.
Selezionare Aggiungi>account di archiviazione di 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 un 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, è possibile trovare 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à. |
Evento | 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, misurato nel server. |
Modificare l'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 di nuovo Abilita , 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 sulla posizione aggiunti dall'indirizzo IP del 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 all'estrema sinistra. Nella parte superiore in cui sono presenti i servizi di Azure selezionare Account di archiviazione. Selezionare il nome dell'account di archiviazione e nella pagina Panoramica selezionare BLOB dei servizi>. Infine, selezionare il nome del contenitore.
Per esaminare Archiviazione di Azure in Visual Studio, selezionare Visualizza>Cloud Explorer. Se questo comando di menu non è disponibile, è 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 relativa 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 saranno più garantiti aggiornamenti o supporto per la funzionalità. Eseguire la transizione 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 depositati nell'archivio, non l'ora in cui è stata generata. Per questo motivo, se si scrive codice per scaricare i dati, è possibile spostarsi in modo lineare tra 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'archivio di staging interno.blobDeliveryTimeUtc
è l'ora in cui il BLOB viene copiato nell'archivio di destinazione dell'esportazione.
Formato dati
I dati vengono formattati in modo che:
Ogni BLOB è un file di testo che contiene 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. Per visualizzare le righe, aprire il BLOB in Visual Studio e selezionare Modifica>file di formato avanzato.>
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 informazioni di riferimento dettagliate sul modello di dati per i tipi di proprietà e i valori, vedere Modello di dati di esportazione di Application Insights.
Elaborare i dati
Su scala ridotta, è possibile scrivere 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
L'utente è responsabile della gestione della capacità di archiviazione e dell'eliminazione dei dati obsoleti, 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 ilvalore Esporta destinazione , ma lasciare selezionata la stessa risorsa di archiviazione. Seleziona 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 di HDInsight nel cloud. HDInsight offre varie 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 le risposte alle domande comuni.
È possibile ottenere un download monouso 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 membri dei gruppi Proprietari o Collaboratori.
È possibile eseguire un'esportazione direttamente al negozio locale?
No. Il nostro motore di esportazione attualmente funziona 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. Ci fermeremo se si raggiungono 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 è stato modificato 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 precedente 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ì. Seleziona 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:
- Archiviazione di Azure account con reti virtuali, firewall e collegamenti privati.
- Esporta in Hub eventi di Azure.
L'esportazione delle impostazioni di diagnostica differisce ulteriormente dall'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 di>diagnostica Aggiungi impostazione di diagnostica dall'interno della risorsa di Application Insights.
- Verificare che la nuova esportazione dei dati sia configurata come l'esportazione continua
Attenzione
Se si vogliono archiviare i log di diagnostica in un'area di lavoro Log Analytics, ci sono due cose da tenere in considerazione 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 le autorizzazioni dell'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 | number | Percentuale di telemetria generata dall'SDK inviato al portale. L'intervallo è 0,0-100,0. |
context.device | oggetto | 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 | oggetto | 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/regione o provincia |
context.operation.id | string | Gli elementi con gli stessi operation id elementi 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 |
Eventi
Eventi personalizzati generati da TrackEvent().
Percorso | Type | Note |
---|---|---|
event [0] count | integer | 100/(frequenza dicampionamento ). 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 | integer | 100/(frequenza dicampionamento ). 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 | integer | |
basicException [0] parsedStack [0] line | integer | |
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 | integer | 100/(frequenza dicampionamento ). Ad esempio, 4 => 25%. |
remoteDependency [0] dependencyTypeName | string | HTTP, SQL... |
remoteDependency [0] durationMetric.value | number | 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 |
Richieste
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 | integer | 100/(frequenza dicampionamento ). Ad esempio, 4 => 25%. |
request [0] durationMetric.value | number | 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 | integer | 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 | integer | Tempo compreso tra la fine della ricezione del codice HTML e la visualizzazione della pagina. |
clientPerformance [0] name | string | |
clientPerformance [0] networkConnection.value | integer | Tempo necessario per stabilire una connessione di rete. |
clientPerformance [0] receiveRequest.value | integer | Tempo compreso tra la fine dell'invio della richiesta e la ricezione del codice HTML nella risposta. |
clientPerformance [0] sendRequest.value | integer | Tempo necessario per inviare la richiesta HTTP. |
clientPerformance [0] total.value | integer | 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 | integer | 100/(frequenza dicampionamento ). Ad esempio, 4 => 25%. |
view [0] durationMetric.value | integer | 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 | number | 1,0 o 0,0 |
availability [0] count | integer | 100/(frequenza dicampionamento ). Ad esempio, 4 => 25%. |
availability [0] dataSizeMetric.name | string | |
availability [0] dataSizeMetric.value | integer | |
availability [0] durationMetric.name | string | |
availability [0] durationMetric.value | number | 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 |
Metrica
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 sono stati omessi i 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.