Supervisión y solución de problemas de recopilación de datos de DCR en Azure Monitor

En este artículo se proporcionan métricas y registros detallados que puede usar para supervisar el rendimiento y solucionar cualquier problema relacionado con la recopilación de datos en Azure Monitor. Esta telemetría está disponible actualmente para escenarios de recopilación de datos definidos por una regla de recopilación de datos (DCR) como el agente de Azure Monitor y la API de ingesta de registros.

Importante

En este artículo solo se hace referencia a escenarios de recopilación de datos que usan DCR, incluidos los siguientes:

Vea la documentación de otros escenarios para obtener cualquier información sobre supervisión y solución de problemas que pueda estar disponible.

Las características de diagnóstico de DCR incluyen métricas y registros de errores emitidos durante el procesamiento de registros. Las métricas de DCR proporcionan información sobre el volumen de datos que se ingiere, el número y la naturaleza de los errores de procesamiento, y estadísticas relacionadas con la transformación de datos. Los registros de errores de DCR se generan siempre que el procesamiento de datos no se realiza correctamente y los datos no llegan a su destino.

Registros de error de DCR

Los registros de errores se generan cuando los datos llegan a la canalización de ingesta de Azure Monitor, pero no alcanzan su destino. Entre los ejemplos de condiciones de error se incluyen los siguientes:

  • Errores de entrega de registros
  • Errores de transformación en los que la estructura de los registros hace que la transformación KQL no sea válida
  • Llamadas a la API de ingesta de registros:
    • con cualquier respuesta HTTP distinta de 200/202
    • con carga que contiene datos con formato incorrecto
    • con carga sobre los límites de ingesta
    • limitación debida al uso por encima del límite de llamadas API

Para evitar un registro excesivo de errores persistentes relacionados con el mismo flujo de datos, algunos errores solo se registrarán un número limitado de veces cada hora seguido de un mensaje de error de resumen. Después, el error se silencia hasta el final de la hora. El número de veces que se registra un error determinado puede variar en función de la región en la que se implemente la DCR.

Algunos errores de ingesta de registros no se registrarán porque no se pueden asociar a una DCR. Es posible que no se registren los errores siguientes:

  • Errores debidos un URI de llamada con formato incorrecto (código de respuesta HTTP 404)
  • Determinados errores internos del servidor (código de respuesta HTTP 500)

Habilitación de los registros de errores de DCR

Los registros de errores de DCR se implementan como registros de recursos en Azure Monitor. Habilite la recopilación de registros mediante la creación de una configuración de diagnóstico para la DCR. Cada DCR necesitará su propia configuración de diagnóstico. Vea Creación de configuraciones de diagnóstico en Azure Monitor para obtener el proceso detallado. Seleccione la categoría Errores de registro y Enviar al área de trabajo de Log Analytics. Es posible que quiera seleccionar la misma área de trabajo que se usa en la DCR, o bien que quiera consolidar todos los registros de errores en una sola área de trabajo.

Recuperación de registros de errores de DCR

Los registros de errores se escriben en la tabla DCRLogErrors en el área de trabajo de Log Analytics que haya especificado en la configuración de diagnóstico. A continuación se muestran consultas de ejemplo que puede usar en Log Analytics para recuperar estos registros.

Recuperar todos los registros de errores de una DCR determinada

DCRLogErrors
| where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"

Recuperar todos los registros de errores de un flujo de entrada concreto en una DCR determinada

DCRLogErrors
| where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
| where InputStream == "Custom-MyTable_CL"

Métricas de DCR

Las métricas de DCR se recopilan automáticamente para todas las DCR y puede analizarlas mediante un explorador de métricas como las métricas de plataforma para otros recursos de Azure. Flujo de entrada se incluye como una dimensión, por lo que si tiene una DCR con varios flujos de entrada, puede analizar cada uno mediante filtrado o división. Algunas métricas incluyen otras dimensiones, como se muestra en la tabla siguiente.

Métrica Dimensions Descripción
Bytes de ingesta de registros por minuto Flujo de entrada Número total de bytes recibidos por minuto.
Solicitudes de ingesta de registros por minuto Flujo de entrada.
Código de respuesta HTTP
Número de llamadas recibidas por minuto
Filas de registros eliminadas por minuto Flujo de entrada. Número de filas de registro eliminadas durante el procesamiento por minuto. Esto incluye las filas eliminadas tanto debido a los criterios de filtrado en la transformación KQL como a las filas eliminadas por causa de errores.
Filas de registros recibidas por minuto Flujo de entrada. Número de filas de registro recibidas para el procesamiento por minuto.
Duración de la transformación de registros por minuto Flujo de entrada. Promedio de tiempo de ejecución de transformación de KQL por minuto. Representa la eficacia del código de transformación KQL. Los flujos de datos con tiempo de ejecución de transformación más largo pueden experimentar retrasos en el procesamiento de datos y una mayor latencia de datos.
Errores de transformación de registros por minuto Flujo de entrada.
Tipo de error
Número de errores de procesamiento detectados por minuto

Solucionar problemas comunes

Si faltan datos esperados en el área de trabajo de Log Analytics, siga estos pasos básicos para solucionar el problema. Se supone que ha habilitado el registro de DCR como se ha descrito antes.

  • Compruebe las métricas como Logs Ingestion Bytes per Min y Logs Rows Received per Min para asegurarse de que los datos llegan a Azure Monitor. De lo contrario, compruebe el origen de datos para asegurarse de que envía datos según lo previsto.
  • Compruebe Logs Rows Dropped per Min para ver si se quitan filas. Es posible que esto no indique un error, ya que una transformación podría quitar las filas. Pero si las filas quitadas son las mismas que Logs Rows Dropped per Min, no se ingerirán datos en el área de trabajo. Examine Logs Transformation Errors per Min para ver si hay errores de transformación.
  • Compruebe Logs Transformation Errors per Min para determinar si hay errores de las transformaciones aplicadas a los datos entrantes. Esto podría deberse a cambios en la estructura de datos o en la propia transformación.
  • Compruebe DCRLogErrors para ver si hay errores de ingesta que se hayan registrado. Esto puede proporcionar detalles adicionales para identificar la causa principal del problema.

Supervisión de la ingesta de registros

Las siguientes señales podrían ser útiles para supervisar el estado de la recopilación de registros con DCR. Cree reglas de alerta para identificar estas condiciones.

Señal Posibles causas y acciones
Nuevas entradas en DCRErrorLogs o cambios repentinos en Log Transform Errors. - Problemas con la configuración de la API de ingesta de registros, como la autenticación, el acceso a DCR o DCE, problemas de carga de llamadas.
- Cambios en la estructura de datos que provocan errores de transformación KQL.
- Cambios en la configuración de destino de los datos que provocan errores de entrega de datos.
Cambio repentino en Logs Ingestion Bytes per Min - Cambios en la configuración de la ingesta de registros en el cliente, incluida la configuración de AMA.
- Cambios en la estructura de los registros enviados.
Cambio repentino de relación entre Logs Ingestion Bytes per Min y Logs Rows Received per Min - Cambios en la estructura de los registros enviados. Examine los cambios para asegurarse de que los datos se procesan correctamente con la transformación KQL.
Cambio repentino en Logs Transformation Duration per Min - Cambios en la estructura de los registros que afectan a la eficacia de los criterios de filtrado de registros establecidos en la transformación KQL. Examine los cambios para asegurarse de que los datos se procesan correctamente con la transformación KQL.
Logs Ingestion Requests per Min o Logs Ingestion Bytes per Min se acercan a los límites de servicio de la API de ingesta de registros. - Examine y optimice la configuración de DCR para evitar la limitación.

Alertas

En lugar de solucionar problemas de forma reactiva, cree reglas de alerta para recibir notificaciones proactivas cuando se produzca una posible condición de error. En la tabla siguiente se proporcionan ejemplos de reglas de alerta que puede crear para supervisar la ingesta de registros.

Condición Detalles de alertas
Cambios repentinos de filas eliminadas Regla de alerta de métricas con un umbral dinámico para Logs Rows Dropped per Min.
Número de llamadas API que se aproximan a los límites del servicio Regla de alerta de métricas con un umbral estático para Logs Ingestion Requests per Min. Establezca el umbral cerca de 12 000, que es el límite de servicio para las solicitudes y minutos máximos por DCR.
Registros de errores Regla de alerta de consulta de registro con DCRLogErrors. Use una medida Filas de tabla y un Valor de umbral de 1 para que se le notifique cada vez que se registren errores.

Pasos siguientes