Análisis de registros y métricas con la configuración de diagnóstico

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a: ✔️ Java ✔️ C#

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

En este artículo se muestra cómo analizar datos de diagnóstico en Azure Spring Apps.

Mediante la funcionalidad de diagnóstico de Azure Spring Apps puede analizar los registros y las métricas con uno de los siguientes servicios:

  • Use Azure Log Analytics. Se produce un retraso al exportar registros a Log Analytics.
  • Guarde los registros en una cuenta de almacenamiento para auditarlos o para inspeccionarlos manualmente. Puede especificar el tiempo de retención (en días).
  • Transmita los registros al centro de eventos para la ingesta en un servicio de terceros o una solución de análisis personalizada.

Elija la categoría de registro y la categoría de métrica que desea supervisar.

Sugerencia

Si solo desea transmitir los registros, puede usar el comando az spring app logs de la CLI de Azure.

Registros

Log Descripción
ApplicationConsole Registro de la consola de todas las aplicaciones del cliente.
SystemLogs Los valores disponibles LogType son ConfigServer(solo básico/estándar), ServiceRegistry(solo todos los planes), ApiPortal(solo plan Enterprise), ApplicationConfigurationService(solo plan Enterprise), SpringCloudGateway (solo plan Enterprise) y SpringCloudGatewayOperator (solo plan Enterprise)
IngressLogs Registros de entrada de todas las aplicaciones del cliente, solo registros de acceso.
BuildLogs Registro de compilación de todas las aplicaciones del cliente en cada fase de compilación.

Métricas

Para obtener una lista completa de las métricas, consulte la sección Opciones de métricas de usuario de Métricas en Azure Spring Apps.

Para empezar, habilite uno de estos servicios para recibir los datos. Para más información sobre la configuración de Log Analytics, consulte Introducción a los análisis de registros de Azure Monitor.

Configuración de valores de diagnóstico

  1. En Azure Portal, vaya a la instancia de Azure Spring Apps.

  2. Seleccione la opción Configuración de diagnóstico y después, Agregar configuración de diagnóstico.

  3. Escriba un nombre para la configuración y elija dónde desea enviar los registros. También puede seleccionar cualquier combinación de las tres opciones siguientes:

    • Archivar en una cuenta de almacenamiento
    • Transmisión a un centro de eventos
    • Enviar a Log Analytics
    • Envío a una solución de asociado
  4. Elija la categoría de registro y de métrica que desea supervisar y especifique el tiempo de retención (en días). El tiempo de retención solo se aplica a la cuenta de almacenamiento.

  5. Seleccione Guardar.

Nota:

Puede transcurrir un intervalo de hasta 15 minutos desde que se emiten los registros o las métricas hasta que aparecen en la cuenta de almacenamiento, el centro de eventos o Log Analytics. Si se elimina o se mueve la instancia de Azure Spring Apps, la operación no se realizará en cascada con los recursos de la configuración de diagnósticos. Los recursos de la administración de diagnósticos se deben eliminar manualmente antes de la operación en su elemento primario, la instancia de Azure Spring Apps. De lo contrario, si se aprovisiona una nueva instancia de Azure Spring Apps con el mismo id. de recurso que la eliminada o si la instancia de Azure Spring Apps se vuelve a trasladar, los recursos de la configuración de diagnósticos anteriores siguen extendiéndola.

Visualización de registros y métricas

Existen varios métodos para ver los registros y las métricas, tal y como se describe en los apartados siguientes.

Uso de la hoja Registros

  1. En Azure Portal, vaya a la instancia de Azure Spring Apps.

  2. Para abrir el panel Búsqueda de registros, seleccione Registros.

  3. En el cuadro de texto Tablas

    • Para ver los registros, escriba una consulta simple como la siguiente:
    AppPlatformLogsforSpring
    | limit 50
    
    • Para ver las métricas, escriba una consulta simple como la siguiente:
    AzureMetrics
    | limit 50
    
  4. Para ver el resultado de la búsqueda, seleccione Ejecutar.

Uso de Log Analytics

  1. En Azure Portal, en el panel izquierdo, seleccione Log Analytics.

  2. Seleccione el área de trabajo de Log Analytics que eligió al agregar la configuración de diagnóstico.

  3. Para abrir el panel Búsqueda de registros, seleccione Registros.

  4. En el cuadro de texto Tablas,

    • Para ver los registros, escriba una consulta simple como la siguiente:
    AppPlatformLogsforSpring
    | limit 50
    
    • Para ver las métricas, escriba una consulta simple como la siguiente:
    AzureMetrics
    | limit 50
    
  5. Para ver el resultado de la búsqueda, seleccione Ejecutar.

  6. Puede buscar los registros de la aplicación o instancia específicas con una condición de filtro:

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    Nota:

    == distingue mayúsculas de minúsculas, pero =~ no.

Para más información sobre el lenguaje de consulta que se utiliza en Log Analytics, consulte Consultas de registros de Azure Monitor. Para consultar todos los registros de Log Analytics desde un cliente centralizado, eche un vistazo a Azure Data Explorer.

Uso de la cuenta de almacenamiento

  1. En Azure Portal, busque Cuentas de almacenamiento en el panel de navegación de la izquierda o en el cuadro de búsqueda.
  2. Seleccione la cuenta de almacenamiento que eligió al agregar la configuración de diagnóstico.
  3. Para abrir el panel Contenedor de blobs, seleccione Blobs.
  4. Para revisar los registros de aplicaciones, busque un contenedor llamado insights-logs-applicationconsole.
  5. Para revisar las métricas de aplicaciones, busque un contenedor llamado insights-metrics-pt1m.

Para más información sobre cómo enviar información de diagnóstico a una cuenta de almacenamiento, consulte Almacenamiento y visualización de los datos de diagnóstico en Azure Storage.

Uso del centro de eventos

  1. En Azure Portal, busque Event Hubs en el panel de navegación de la izquierda o en el cuadro de búsqueda.

  2. Busque y seleccione el centro de eventos que eligió al agregar la configuración de diagnóstico.

  3. Para abrir el panel Event Hub List (Lista de centros de eventos), seleccione Centros de eventos.

  4. Para revisar los registros de aplicaciones, busque un centro de eventos llamado insights-logs-applicationconsole.

  5. Para revisar las métricas de aplicaciones, busque un centro de eventos llamado insights-metrics-pt1m.

Para más información sobre cómo enviar información de diagnóstico a un centro de eventos, consulte Transmisión de datos de Azure Diagnostics en la ruta de acceso activa mediante Event Hubs.

Análisis de los registros

Azure Log Analytics se ejecuta con un motor Kusto para que pueda consultar los registros para el análisis. Revise el tutorial de Log Analytics para una introducción rápida a la consulta de registros con Kusto.

Los registros de aplicaciones proporcionan información crítica y registros detallados sobre el estado de la aplicación, el rendimiento y mucho más. En las siguientes secciones se muestran algunas consultas sencillas que le ayudarán a comprender los estados actual y anterior de la aplicación.

Visualización de los registros de aplicaciones de Azure Spring Apps

Para revisar una lista de los registros de aplicaciones de Azure Spring Apps ordenados por tiempo, donde los más recientes se muestran en primer lugar, ejecute la siguiente consulta:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc

Visualización de las entradas de registro con errores o excepciones

Para revisar las entradas de registro sin ordenar que mencionan un error o una excepción, ejecute la siguiente consulta:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"

Use esta consulta para buscar errores o modificar los términos de la consulta para encontrar códigos de error específicos o excepciones.

Visualización del número de errores y excepciones que ha notificado la aplicación durante la última hora

Para crear un gráfico circular que muestre el número de errores y excepciones registrados por la aplicación en la última hora, ejecute la siguiente consulta:

AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart

Visualización de las entradas de registro de entrada que contienen un host específico

Para revisar las entradas de registro generadas por un host específico, ejecute la consulta siguiente:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Use esta consulta para buscar respuestas sobre Status, RequestTime y otras propiedades de los registros de entrada de este host específico.

Visualización de las entradas de registro de entrada que contienen un host específico

Para revisar las entradas de registro de un valor requestId<request_ID>, ejecute la siguiente consulta:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Visualización de las entradas de registro de compilación de una aplicación específica

Para revisar las entradas de registro de una aplicación específica durante el proceso de compilación, ejecute la consulta siguiente:

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated

Visualización de las entradas de registro de compilación de una aplicación específica en una fase de compilación determinada

Para revisar las entradas de registro de una aplicación específica en una fase de compilación determinada, ejecute la consulta siguiente. Sustituya el marcador de posición <app-name> por el nombre de la aplicación. Sustituya el marcador de posición <build-stage> por uno de los siguientes valores, que representan las fases del proceso de compilación: prepare, detect, restore, analyze, build, export o completion.

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated

Mostrar los registros de VMware Spring Cloud Gateway en el plan Enterprise

Para revisar las entradas de registro de los registros de VMware Spring Cloud Gateway en el plan Enterprise, ejecute la consulta siguiente:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Otro componente, denominado Operador de Puerta de enlace de Spring Cloud, controla el ciclo de vida de Spring Cloud Gateway y las rutas. Si encuentra algún problema con la ruta que no surte efecto, compruebe los registros de este componente. Para revisar las entradas de registro del operador de puerta de enlace de VMware Spring Cloud en el plan Enterprise, ejecute la consulta siguiente:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Mostrar el servicio de configuración de aplicaciones para los registros de Tanzu en el plan Enterprise

Para revisar las entradas de registro del servicio de configuración de aplicaciones para los registros de Tanzu en el plan Enterprise, ejecute la consulta siguiente:

AppPlatformSystemLogs 
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Mostrar los registros del Registro del servicio Tanzu en el plan Enterprise

Para revisar las entradas de registro de los registros del Registro de servicio de Tanzu en el plan Enterprise, ejecute la consulta siguiente:

AppPlatformSystemLogs 
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Mostrar el portal de API para los registros de VMware Tanzu en el plan Enterprise

Para revisar las entradas de registro del portal de API para los registros de VMware Tanzu en el plan Enterprise, ejecute la consulta siguiente:

AppPlatformSystemLogs 
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Más información sobre la consulta de registros de aplicaciones

Azure Monitor proporciona buen soporte técnico para consultar los registros de aplicaciones mediante Log Analytics. Para más información sobre este servicio, consulte Introducción a las consultas de registro en Azure Monitor. Para más información sobre la compilación de consultas para analizar los registros de aplicaciones, consulte Introducción a las consultas de registro en Azure Monitor.

Preguntas más frecuentes

¿Cómo se convierten los seguimientos de la pila de Java de varias líneas en una única línea?

Hay una solución alternativa para convertir los seguimientos de la pila de varias líneas en una única línea. Puede modificar la salida del registro de Java para volver a dar formato a los mensajes de seguimiento de la pila, reemplazando los caracteres de nueva línea por un token. Si usa la biblioteca Logback de Java, puede volver a dar formato a los mensajes de seguimiento de la pila con la adición de %replace(%ex){'[\r\n]+', '\\n'}%nopex como se indica a continuación:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

Puede reemplazar el token por caracteres de nueva línea en Log Analytics como se indica a continuación:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Es posible que pueda usar la misma estrategia para otras bibliotecas de registro de Java.

Pasos siguientes