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 procesarla de algún modo especializado? 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 Microsoft 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 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 del almacenamiento de Azure:

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 almacenamiento de Azure donde quiera almacenar los datos. Para más información sobre las opciones de precios de almacenamiento, visite la página oficial de precios.

    Seleccione Agregar, Destino de exportación, Cuenta de almacenamiento y cree un nuevo almacén o elija uno.

    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 y no hay manera de exportar de forma retroactiva los datos creados anteriormente, con la exportación continua.

Puede haber un retraso de aproximadamente una hora antes de que aparezcan los datos en el almacenamiento.

Una vez completada la primera exportación, encontrará la siguiente estructura en el contenedor de Azure Blob Storage: (la estructura cambiará en función de los datos que recopile).

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.

Para editar la exportación continua

Seleccione exportación continua y seleccione la cuenta de almacenamiento que desee editar.

Para 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

Muestreo. 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ú de la izquierda, en la parte superior donde se indica "Servicios de Azure", seleccione Cuentas de almacenamiento, seleccione el nombre de la cuenta de almacenamiento, en la página de información general, seleccione Blobs bajo Servicios y, por último, seleccione el nombre del contenedor.

Para inspeccionar Azure Storage en Visual Studio, abra 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. 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).

Inspect the blob store with a suitable tool

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ó. De modo que 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"

Where

  • 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

  • Cada blob es 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 elija Editar>Avanzado>Archivo de formato:

    View the telemetry with a suitable tool

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}

Referencia detallada del modelo de datos para los tipos y valores de propiedad.

Procesamiento de los datos

En una pequeña escala, puede escribir código para separar sus datos, leerlos en una hoja de cálculo, etc. 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.

Si vuelve 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.

Abra la pestaña Exportación continua y edite la exportación. Modifique el destino de exportación, pero deje el mismo almacenamiento seleccionado. Seleccione Aceptar para confirmar.

La exportación continua se reiniciará.

Ejemplos de exportación

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 y respuestas

  • Lo único que quiero es una descarga única de un gráfico.

    Sí, puede hacerlo. En la parte superior de la pestaña, seleccione Exportar datos.

  • Configuro una exportación, pero 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 se 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?

    Lamentablemente, no. Nuestro motor de exportación actualmente solo funciona con el almacenamiento de Azure.

  • ¿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 del almacenamiento de blobs, pero hasta llegar ahí aún falta. 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 cada minuto (si los datos están disponibles).
    • Además, 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, y ahora no funciona la exportación.

    Edite la exportación y abra la pestaña de destino de la exportación. Deje el mismo almacenamiento seleccionado que antes 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 almacenamiento de Azure con redes virtuales, firewalls y vínculos privados
  • Exportar a 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 la exportación basada en la configuración de diagnóstico:

  1. Deshabilite la exportación continua actual.
  2. Migre la aplicación a recursos basados en áreas de trabajo.
  3. Habilite la exportación basada en la configuración de diagnóstico. Seleccione Configuración de diagnóstico > Agregar configuración de diagnóstico en el recurso de Application Insights.