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

Antes de configurar la exportación continua, hay algunas alternativas que conviene tener en cuenta:

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
  • 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:

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.

  1. En el recurso de Application Insights de su aplicación en Configuración, a la izquierda, abra Exportación continua y elija Agregar.

  2. Elija los tipos de datos de telemetría que quiere exportar.

  3. 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.

  4. 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.

Captura de pantalla que muestra la inspección del almacén de blobs con una herramienta adecuada.

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.

    Captura de pantalla que muestra cómo ver la telemetría con una herramienta adecuada

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

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:

  1. Habilite la configuración de diagnóstico en Application Insights clásico.
  2. Configurar la exportación de datos: seleccione Configuración de>diagnóstico Agregar configuración de diagnóstico desde el recurso de Application Insights.
  3. 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.

Consulte también