Exportación de telemetría desde Application Insights
¿Desea mantener la telemetría durante más tiempo que el período de retención estándar? ¿O quiere procesarlo de alguna manera especializada? La exportación continua es lo más conveniente para este propósito. Los eventos que se ven en el portal de Application Insights pueden exportarse a almacenamiento en Azure en formato JSON. Desde allí puede descargar los datos y escribir el código necesario para procesarlos.
Importante
- A partir del 29 de febrero de 2024, se retira la exportación continua.
- Cuando migra a un recurso de Application Insights basado en áreas de trabajo, se debe usar una configuración de diagnóstico para la exportación de telemetría. Los recursos de Application Insights basados en áreas de trabajo deben usar la configuración de diagnóstico.
- La exportación de la configuración de diagnóstico puede aumentar los costos. Para obtener más información, consulte Exportación basada en configuración de diagnóstico.
Antes de configurar la exportación continua, hay algunas alternativas que conviene tener en cuenta:
- El botón Exportar de la parte superior de una pestaña de búsqueda o métricas permite transferir tablas y gráficos a una hoja de cálculo de Excel.
- Log Analytics proporciona un lenguaje de consulta eficaz para telemetría. También puede exportar los resultados.
- Si desea explorar los datos en Power BI, puede hacerlo sin usar la exportación continua si ha migrado a un recurso basado en área de trabajo.
- La API de REST de acceso a datos le permite acceder a datos de telemetría con programación.
- También puede acceder a la configuración de la exportación continua a través de PowerShell.
Cuando la exportación continua copie sus datos en el almacenamiento (donde pueden permanecer tanto tiempo como quiera), seguirán estando disponibles en Application Insights durante el período de retención habitual.
Regiones admitidas
La exportación continua se admite en las siguientes regiones:
- Sudeste de Asia
- Centro de Canadá
- Centro de la India
- Norte de Europa
- Sur de Reino Unido 2
- Este de Australia
- Japón Oriental
- Centro de Corea del Sur
- Centro de Francia
- Este de Asia
- Oeste de EE. UU.
- Centro de EE. UU.
- Este de EE. UU. 2
- Centro-sur de EE. UU.
- Oeste de EE. UU. 2
- Norte de Sudáfrica
- Centro-Norte de EE. UU
- Sur de Brasil
- Norte de Suiza
- Sudeste de Australia
- Oeste de Reino Unido
- Centro-oeste de Alemania
- Oeste de Suiza
- Centro de Australia 2
- Centro de Emiratos Árabes Unidos
- Sur de Brasil
- Centro de Australia
- Norte de Emiratos Árabes Unidos
- Este de Noruega
- Japón Occidental
Nota
La exportación continua seguirá funcionando para aplicaciones del Este de EE. UU. y Oeste de Europa si la exportación se configuró antes del 23 de febrero de 2021. Las nuevas reglas de exportación continua no se pueden configurar en ninguna aplicación del Este de EE. UU. u Oeste de Europa, independientemente de cuándo se creó la aplicación.
Configuración avanzada del almacenamiento de exportación continua
La exportación continua no admite las siguientes características o configuraciones de Azure Storage:
- Uso de firewalls de Azure Virtual Network o Azure Storage con Azure Blob Storage.
- Azure Data Lake Storage Gen2.
Creación de una exportación continua
Nota
Una aplicación no puede exportar más de 3 TB de datos al día. Si se exportan más datos, se deshabilitará la exportación. Para exportar sin límite, use la exportación basada en la configuración de diagnóstico.
En el recurso de Application Insights de su aplicación en Configuración, a la izquierda, abra Exportación continua y elija Agregar.
Elija los tipos de datos de telemetría que quiere exportar.
Cree o seleccione una cuenta de Azure Storage donde quiera almacenar los datos. Para más información sobre las opciones de precios de almacenamiento, consulte la página de Precios.
Seleccione Agregar>cuenta de almacenamiento de destino> de exportación. A continuación, cree un almacén o elija uno que ya exista.
Advertencia
De forma predeterminada, la ubicación de almacenamiento se establecerá en la misma región geográfica que el recurso de Application Insights. Si los almacena en una región diferente, puede conllevar gastos de transferencia.
Cree o seleccione un contenedor en el almacenamiento.
Nota
Una vez que haya creado la exportación, los datos recién ingeridos comenzarán a fluir a Azure Blob Storage. Una exportación continua solo transmitirá telemetría nueva que se crea o se ingiere, después de habilitar la exportación continua. Los datos que existían antes de habilitar la exportación continua no se exportarán. No se admite la exportación retroactiva de datos creados previamente mediante la exportación continua.
Puede haber un retraso de aproximadamente una hora antes de que aparezcan los datos en el almacenamiento.
Una vez finalizada la primera exportación, encontrará la siguiente estructura en el contenedor de Blob Storage. (Esta estructura varía en función de los datos que se recopilan).
Nombre | Descripción |
---|---|
Disponibilidad | Notifica sobre pruebas web de disponibilidad. |
Evento | Eventos personalizados generados por TrackEvent(). |
Excepciones | Notifica sobre excepciones en el servidor y en el explorador. |
Mensajes | Enviados por TrackTrace y por los adaptadores de registro. |
Métricas | Generado por llamadas de la API de métricas. |
PerformanceCounters | Contadores de rendimiento recopilados por Application Insights. |
Solicitudes | Enviado por TrackRequest. Los módulos estándar usan solicitudes para informar sobre el tiempo de respuesta del servidor, medido en el propio servidor. |
Editar exportación continua
Seleccione exportación continua y la cuenta de almacenamiento que desee editar.
Detener la exportación continua
Para detener la exportación, seleccione Deshabilitar. Al seleccionar Habilitar de nuevo, la exportación se reinicia con nuevos datos. No obtendrá los datos que llegaron al portal mientras estaba deshabilitada la exportación.
Para detener la exportación de forma permanente, elimínela. Al realizar esta acción no se eliminan los datos del almacenamiento.
¿No puede agregar o cambiar una exportación?
Para agregar o cambiar las exportaciones, necesita derechos de acceso de propietario, colaborador o colaborador de Application Insights. Más información sobre los roles.
¿Qué eventos obtiene?
Los datos exportados son la telemetría sin procesar que recibimos de la aplicación, con los datos de ubicación de la dirección IP del cliente.
Los datos que se han descartado por muestreo no se incluyen en los datos exportados.
No se incluyen otras métricas calculadas. Por ejemplo, no exportamos el uso medio de la CPU, pero sí la telemetría sin procesar a partir de la que se calcula la media.
Los datos también incluyen los resultados de cualquier prueba web de disponibilidad que haya configurado.
Nota
Si la aplicación envía muchos datos, la característica de muestreo puede operar y enviar solamente una fracción de la telemetría generada. Aprenda más sobre el muestreo.
Inspección de los datos
Puede inspeccionar el almacenamiento directamente en el portal. Seleccione Inicio en el menú situado más a la izquierda. En la parte superior donde dice servicios de Azure, seleccione Cuentas de almacenamiento. Seleccione el nombre de la cuenta de almacenamiento y, en la página Información general, seleccione Servicios>Blobs. Por último, seleccione el nombre del contenedor.
Para inspeccionar Azure Storage en Visual Studio, seleccione Ver>Cloud Explorer. Si no tienes ese comando de menú, deberá instalar Azure SDK. Abra el cuadro de diálogo Nuevo proyecto, expanda Visual C#/Nube y seleccione Obtener Microsoft Azure SDK para. NET.
Al abrir el almacén de blobs, verá un contenedor con un conjunto de archivos blob. Verá el URI de cada archivo que se deriva del nombre del recurso de Application Insights, su clave de instrumentación, y el tipo, fecha y hora de telemetría. El nombre del recurso está todo en minúsculas y la clave de instrumentación omite guiones.
Nota
El 31 de marzo de 2025 finalizará la compatibilidad con la ingesta de claves de instrumentación. La ingesta de claves de instrumentación seguirá funcionando, pero la característica ya no recibirá actualizaciones ni soporte técnico. Transición a las cadenas de conexión para aprovechar las nuevas funcionalidades.
La fecha y hora son UTC e indican cuándo se depositó la telemetría en el almacén, no la hora en que se generó. Por esta razón, si escribe código para descargar los datos, se puede mover linealmente a través de los datos.
Este es el formato de la ruta de acceso:
$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"
Donde:
blobCreationTimeUtc
es la hora de creación del blob en el almacenamiento provisional interno.blobDeliveryTimeUtc
es la hora de copia del blob en el almacenamiento de destino de exportación.
Formato de datos
Los datos están formateados de modo que:
Cada blob sea un archivo de texto que contiene varias filas separadas por
\n
. Contiene la telemetría procesada durante un período de aproximadamente la mitad de un minuto.Cada fila representa un punto de datos de telemetría, como una vista de página o una solicitud.
Cada fila es un documento JSON sin formato. Si desea ver las filas, abra el blob en Visual Studio y seleccione Editar>Avanzado>Archivo de formato.
Las duraciones de tiempo son tics, donde 10 000 tics = 1 ms. Por ejemplo, estos valores muestran un tiempo de 1 ms para enviar una solicitud desde el explorador, 3 ms para recibirla y 1,8 s para procesar la página en el explorador:
"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}
Para obtener una referencia detallada del modelo de datos para los tipos y valores de propiedad, consulte Modelo de exportación de datos de Application Insights.
Procesamiento de los datos
En una pequeña escala, puede escribir código para separar sus datos y leerlos en una hoja de cálculo. Por ejemplo:
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);
}
}
}
}
Para obtener un ejemplo de código mayor, consulte Cómo usar un rol de trabajo.
Eliminación de los datos antiguos
Es responsable de administrar la capacidad de almacenamiento y de eliminar los datos antiguos, si fuera necesario.
Vuelva a generar la clave de almacenamiento
Si cambia la clave para el almacenamiento, la exportación continua dejará de funcionar. Verá una notificación en su cuenta de Azure.
Seleccione la pestaña Exportación continua y edite la exportación. Modifique el valor de Destino de exportación, pero deje el mismo almacenamiento seleccionado. Seleccione Aceptar para confirmar.
La exportación continua se reiniciará.
Ejemplos de exportación
Para obtener ejemplos de exportación, consulte:
En escalas más grandes, considere la posibilidad de clústeres de Hadoop en HDInsight en la nube. HDInsight ofrece diversas tecnologías para administrar y analizar Big Data. Puede usarlo para procesar los datos que se han exportado desde Application Insights.
Preguntas más frecuentes
Esta sección proporciona respuestas a preguntas comunes.
¿Puedo obtener una descarga única de un gráfico?
Puede hacerlo. En la parte superior de la pestaña, seleccione Exportar datos.
Configuro una exportación, pero, ¿por qué no hay ningún dato en el almacén?
¿Recibió Application Insights alguna telemetría de su aplicación desde que configuró la exportación? Solo recibirá datos nuevos.
Intenté configurar una exportación, pero, ¿por qué se me deniega el acceso?
Si la cuenta pertenece a su organización, debe ser miembro de los grupos de propietarios o colaboradores.
¿Puedo exportar directamente a mi propio almacén local?
No. Nuestro motor de exportación actualmente solo funciona con Azure Storage.
¿Hay ningún límite para la cantidad de datos que puedo colocar en mi almacén?
No. Seguiremos insertando datos hasta que elimine la exportación. Pararemos si alcanzamos los límites externos de Blob Storage, pero hasta llegar ahí aún falta mucho. Depende de usted controlar la cantidad de almacenamiento que usa.
¿Cuántos blobs debería ver en el almacenamiento?
- Para cada tipo de datos que seleccionó para exportar, se crea un blob nuevo por minuto si los datos están disponibles.
- Para las aplicaciones con mucho tráfico, se asignan unidades de partición adicionales. En este caso, cada unidad crea un blob cada minuto.
Volví a generar la clave de mi almacenamiento o cambié el nombre del contenedor, pero, ¿por qué no funciona la exportación?
Edite la exportación y seleccione la pestaña de Destino de la exportación. Deje seleccionado el mismo almacenamiento que la vez anterior y seleccione Aceptar para confirmar. La exportación se reiniciará. Si el cambio estaba dentro de los últimos días, no perderá datos.
¿Puedo detener la exportación?
Sí. Seleccione Deshabilitar.
Ejemplos de código
- Ejemplo de Stream Analytics
- Exportación a SQL mediante Stream Analytics
- Referencia detallada del modelo de datos para los tipos y valores de propiedad
Exportación basada en la configuración de diagnóstico
Se prefiere la exportación de la configuración de diagnóstico porque proporciona características adicionales:
- Cuentas de Azure Storage con redes virtuales, firewalls y vínculos privados.
- Exportar a Azure Event Hubs.
La exportación de la configuración de diagnóstico difiere aún más de la exportación continua de las siguientes maneras:
- Esquema actualizado.
- Los datos de telemetría se envían a medida que llegan en lugar de en cargas por lotes.
Importante
Es posible que se incurra en costos adicionales debido a un aumento en las llamadas al destino, como una cuenta de almacenamiento.
Para migrar a la exportación de la configuración de diagnóstico:
- Habilite la configuración de diagnóstico en Application Insights clásico.
- Configurar la exportación de datos: seleccione Configuración>de diagnóstico Agregar configuración de diagnóstico desde el recurso de Application Insights.
- Compruebe que la nueva exportación de datos está configurada igual que la exportación continua.
Precaución
Si quiere almacenar los registros de diagnóstico en un área de trabajo de Log Analytics, hay dos aspectos que debe tener en cuenta para evitar ver datos duplicados en Application Insights:
- El destino no puede ser la misma área de trabajo de Log Analytics en la que se basa el recurso de Application Insights.
- El usuario de Application Insights no puede tener acceso a ambas áreas de trabajo. Establezca el modo de control de acceso de Log Analytics en Requiere permisos de área de trabajo. Asegúrese mediante el control de acceso basado en roles de Azure de que el usuario solo tiene acceso al área de trabajo de Log Analytics en la que se basa el recurso de Application Insights.
Estos pasos son necesarios porque Application Insights accede a la telemetría entre los recursos de Application Insights, incluidas las áreas de trabajo de Log Analytics, para proporcionar operaciones de transacción de un extremo a otro completas y asignaciones de aplicaciones precisas. Dado que los registros de diagnóstico usan los mismos nombres de tabla, se puede mostrar la telemetría duplicada si el usuario tiene acceso a varios recursos que contienen los mismos datos.
Modelo de exportación de datos de Application Insights
En esta tabla se enumeran las propiedades de telemetría enviadas desde los SDK de Application Insights al portal. Verá estas propiedades en el resultado de datos de Exportación continua. También aparecen en los filtros de propiedad de Explorador de métricas y Búsqueda de diagnóstico.
Puntos a tener en cuenta:
[0]
en estas tablas denota un punto en la ruta de acceso donde se debe insertar un índice; pero no siempre es 0.- Los períodos de tiempo se indican en décimas de microsegundo, así que 10000000 = 1 segundo.
- Las fechas y horas son UTC y se proporcionan en el formato ISO
yyyy-MM-DDThh:mm:ss.sssZ
Ejemplo
// 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
}
}
}
Context
Una sección de contexto acompaña a todos los tipos de telemetría. No todos estos campos se transmiten con cada punto de datos.
Path | Tipo | Notas |
---|---|---|
context.custom.dimensions [0] | objeto [ ] | Pares de cadenas de clave-valor establecidos por el parámetro de propiedades personalizadas. Longitud máxima de clave: 100, longitud máxima de valores: 1024. Más de 100 valores únicos, se pueden realizar búsquedas en la propiedad, pero no se puede usar para la segmentación. Máximo de 200 claves por ikey. |
context.custom.metrics [0] | objeto [ ] | Los pares de clave-valor se establecen mediante el parámetro de medidas personalizado y mediante TrackMetrics. Longitud máxima de clave: 100, los valores pueden ser numéricos. |
context.data.eventTime | string | UTC |
context.data.isSynthetic | boolean | La solicitud parece proceder de un bot o una prueba web. |
context.data.samplingRate | number | Porcentaje de telemetría generado por el SDK que se envía al portal. Intervalo 0,0 a 100,0. |
context.device | object | Dispositivo de cliente |
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 del host |
context.device.roleInstance | string | Identificador del host del servidor |
context.device.roleName | string | |
context.device.screenResolution | string | |
context.device.type | string | PC, explorador,… |
context.location | object | Derivado de clientip . |
context.location.city | string | Derivado de clientip , si se conoce. |
context.location.clientip | string | El último octágono se hace anónimo en 0. |
context.location.continent | string | |
context.location.country | string | |
context.location.province | string | Estado o provincia |
context.operation.id | string | Los elementos que tienen el mismo operation id se muestran como elementos relacionados en el portal. Normalmente, request id . |
context.operation.name | string | Nombre de solicitud o dirección URL |
context.operation.parentId | string | Permite elementos relacionados anidados. |
context.session.id | string | Id de un grupo de operaciones del mismo origen. Un período de 30 minutos sin una operación señala el final de una sesión. |
context.session.isFirst | boolean | |
context.user.accountAcquisitionDate | string | |
context.user.accountId | string | |
context.user.anonAcquisitionDate | string | |
context.user.anonId | string | |
context.user.authAcquisitionDate | string | Usuario autenticado |
context.user.authId | string | |
context.user.isAuthenticated | boolean | |
context.user.storeRegion | string | |
internal.data.documentVersion | string | |
internal.data.id | string | Unique id que se asigna cuando un elemento se ingiere en Application Insights |
Eventos
Eventos personalizados generados por TrackEvent().
Path | Tipo | Notas |
---|---|---|
event [0] count | integer | 100/(frecuencia demuestreo ). Por ejemplo, 4 => 25 %. |
event [0] name | string | Nombre del evento. Longitud máxima: 250. |
event [0] url | string | |
event [0] urlData.base | string | |
event [0] urlData.host | string |
Excepciones
Notifica sobre excepciones en el servidor y en el explorador.
Path | Tipo | Notas |
---|---|---|
basicException [0] assembly | string | |
basicException [0] count | integer | 100/(frecuencia demuestreo ). Por ejemplo, 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 | Mensaje de excepción. Longitud máxima: 10 000. |
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 | Longitud máxima: 10 000. |
basicException [0] typeName | string |
Mensajes de seguimiento
Enviados por TrackTrace y por los adaptadores de registro.
Path | Tipo | Notas |
---|---|---|
message [0] loggerName | string | |
message [0] parameters | string | |
message [0] raw | string | El mensaje de registro, longitud máxima: 10 000. |
message [0] severityLevel | string |
Dependencia remota
Enviado por TrackDependency. Se usa para notificar el rendimiento y el uso de las llamadas a dependencias en el servidor y de las llamadas AJAX en el explorador.
Path | Tipo | Notas |
---|---|---|
remoteDependency [0] async | boolean | |
remoteDependency [0] baseName | string | |
remoteDependency [0] commandName | string | Por ejemplo, "home/index". |
remoteDependency [0] count | integer | 100/(frecuencia demuestreo ). Por ejemplo, 4 => 25 %. |
remoteDependency [0] dependencyTypeName | string | HTTP, SQL... |
remoteDependency [0] durationMetric.value | number | Tiempo desde la llamada hasta la finalización de respuesta de la dependencia |
remoteDependency [0] id |
string | |
remoteDependency [0] name | string | URL Longitud máxima: 250. |
remoteDependency [0] resultCode | string | de la dependencia de HTTP |
remoteDependency [0] success | boolean | |
remoteDependency [0] type | string | Http, Sql,... |
remoteDependency [0] url | string | Longitud máxima: 2000 |
remoteDependency [0] urlData.base | string | Longitud máxima: 2000 |
remoteDependency [0] urlData.hashTag | string | |
remoteDependency [0] urlData.host | string | Longitud máxima: 200 |
Requests
Enviado por TrackRequest. Los módulos estándar usan esto para informar sobre el tiempo de respuesta del servidor, medido en el propio servidor.
Path | Tipo | Notas |
---|---|---|
request [0] count | integer | 100/(frecuencia demuestreo ). Por ejemplo: 4 => 25 %. |
request [0] durationMetric.value | number | Tiempo desde que llega la solicitud hasta la respuesta. 1e7 = 1 s |
request [0] id |
string | Operation id |
request [0] name | string | GET y POST + dirección url base. Longitud máxima: 250 |
request [0] responseCode | integer | Respuesta HTTP enviada al cliente |
request [0] success | boolean | Predeterminado == (responseCode < 400) |
request [0] url | string | No incluye el host |
request [0] urlData.base | string | |
request [0] urlData.hashTag | string | |
request [0] urlData.host | string |
Rendimiento de la vista de página
Enviado por el explorador. Mide el tiempo que se tarda en procesar una página desde que el usuario inicia la solicitud hasta que aparece por completo (excluidas las llamadas AJAX asincrónicas).
Los valores de contexto muestran el sistema operativo del cliente y la versión del explorador.
Path | Tipo | Notas |
---|---|---|
clientPerformance [0] clientProcess.value | integer | Tiempo transcurrido desde el fin de la recepción del código HTML hasta que se muestra la página. |
clientPerformance [0] name | string | |
clientPerformance [0] networkConnection.value | integer | Tiempo necesario para establecer una conexión de red. |
clientPerformance [0] receiveRequest.value | integer | Tiempo transcurrido desde la finalización del envío de la solicitud hasta la recepción del código HTML en la respuesta. |
clientPerformance [0] sendRequest.value | integer | Tiempo empleado en enviar la solicitud HTTP. |
clientPerformance [0] total.value | integer | Tiempo transcurrido desde que se empieza a enviar la solicitud hasta que se muestra la página. |
clientPerformance [0] url | string | Dirección URL de esta solicitud |
clientPerformance [0] urlData.base | string | |
clientPerformance [0] urlData.hashTag | string | |
clientPerformance [0] urlData.host | string | |
clientPerformance [0] urlData.protocol | string |
Vistas de página
Enviado por trackPageView() o stopTrackPage
Path | Tipo | Notas |
---|---|---|
view [0] count | integer | 100/(frecuencia demuestreo ). Por ejemplo, 4 => 25 %. |
view [0] durationMetric.value | integer | Valor establecido opcionalmente en trackPageView() o mediante startTrackPage() - stopTrackPage(). No es igual que los valores de clientPerformance. |
view [0] name | string | Título de la página. Longitud máxima: 250 |
view [0] url | string | |
view [0] urlData.base | string | |
view [0] urlData.hashTag | string | |
view [0] urlData.host | string |
Disponibilidad
Notifica sobre pruebas web de disponibilidad.
Path | Tipo | Notas |
---|---|---|
availability [0] availabilityMetric.name | string | availability |
availability [0] availabilityMetric.value | number | 1,0 o 0,0 |
availability [0] count | integer | 100/(frecuencia demuestreo ). Por ejemplo, 4 => 25 %. |
availability [0] dataSizeMetric.name | string | |
availability [0] dataSizeMetric.value | integer | |
availability [0] durationMetric.name | string | |
availability [0] durationMetric.value | number | Duración de la prueba. 1e7 = 1 s |
availability [0] message | string | Diagnóstico de errores |
availability [0] result | string | Sin errores/Error |
availability [0] runLocation | string | Origen geográfica de la solicitud http |
availability [0] testName | string | |
availability [0] testRunId | string | |
availability [0] testTimestamp | string |
Métricas
Generado por TrackMetric().
El valor de la métrica se encuentra en context.custom.metrics[0].
Por ejemplo:
{
"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
}
}
]
}
}
}
Acerca de los valores de métrica
Los valores de métrica, tanto en los informes de métrica como en otros lugares, se notifican con una estructura de objeto estándar. Por ejemplo:
"durationMetric": {
"name": "contoso.org",
"type": "Aggregation",
"value": 468.71603053650279,
"count": 1.0,
"min": 468.71603053650279,
"max": 468.71603053650279,
"stdDev": 0.0,
"sampledValue": 468.71603053650279
}
Aunque esto puede cambiar en el futuro, en la actualidad, en todos los valores notificados desde los módulos SDK estándar, count==1
y solo los campos name
y value
son útiles. El único caso donde podrían ser diferentes es si escribe sus propias llamadas de TrackMetric, en cuyo caso establecerá los demás parámetros.
El propósito de los demás campos es permitir que las métricas se agreguen en el SDK, para reducir el tráfico hacia el portal. Por ejemplo, podría hacer el promedio de varias lecturas sucesivas antes de enviar cada informe métrica. A continuación, podría calcular el mínimo, el máximo, la desviación estándar y un valor agregado (suma o promedio) y establecer el recuento en el número de lecturas representado por el informe.
En las tablas anteriores, hemos omitido los campos usados con poca frecuencia como count, min, max, stdDev y sampledValue.
En lugar de la agregación previa de las métricas, puede usar el muestreo si necesita reducir el volumen de datos de telemetría.
Duraciones
Excepto donde se indique lo contrario, las duraciones se representan en décimas de microsegundo, por lo que 10000000,0 equivalen a 1 segundo.