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

Nota:

Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de jubilación de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan de consumo estándar y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el consumo estándar de Azure Spring Apps y el plan dedicado a Azure Container Apps.

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 de la CLI de Azure az spring app logs.

Registros

Log Descripción
ApplicationConsole Registro de la consola de todas las aplicaciones del cliente.
SystemLogs Los valores de LogType disponibles son ConfigServer(solo Básico/Estándar), ServiceRegistry(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.

Nota:

Para proteger la aplicación frente a posibles pérdidas de credenciales, todo el contenido del registro con credenciales u otra información confidencial se enmascara con ***. Por ejemplo, cualquier contenido de registro con los siguientes patrones se controla como información confidencial y se enmascaran los valores correspondientes:

  • dbpass, password, key, secret, sig, y signature seguido de : o =. Estos patrones suelen aparecer en parámetros de dirección URL y volcados de carga. Por ejemplo, https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx se convierte en https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
  • Cadenas codificadas de tipo token JWT en el formato: eyJxxxxxx.eyJxxxxxx

Si encuentra valores enmascarados en sus registros, asegúrese de actualizar el código de su aplicación para eliminar la fuga de credenciales.

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. Puede seleccionar cualquier combinación de las 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 del panel 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 búsqueda Tablas, use una de las siguientes consultas:

    • Para ver los registros, escriba una consulta como la del siguiente ejemplo:

      AppPlatformLogsforSpring
      | limit 50
      
    • Para ver las métricas, escriba una consulta como la del siguiente ejemplo:

      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 búsqueda Tablas, use una de las siguientes consultas:

    • Para ver los registros, escriba una consulta como la del siguiente ejemplo:

      AppPlatformLogsforSpring
      | limit 50
      
    • Para ver las métricas, escriba una consulta como la del siguiente ejemplo:

    AzureMetrics
    | limit 50
    
  5. Para ver el resultado de la búsqueda, seleccione Ejecutar.

  6. Puede buscar en los registros de la aplicación o instancia específica estableciendo una condición de filtro, como se muestra en el siguiente ejemplo:

    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 en la puerta de enlace de Spring Cloud en el plan Enterprise

Para revisar las entradas de registro de los registros de VMware en la puerta de enlace de Spring Cloud 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.

Puntos de entrada convenientes en Azure Portal

Siga estos pasos para ir al panel de Log Analytics con consultas predefinidas:

  1. Vaya a la página de información general de la instancia de servicio de Azure Spring Apps y, a continuación, seleccione Aplicaciones en el panel de navegación.

  2. Busque la aplicación de destino y, a continuación, seleccione el menú contextual.

  3. En el menú contextual emergente, seleccione Ver registros.

    Recorte de pantalla de Azure Portal que muestra la página Aplicaciones con el elemento contextual Ver registros resaltado.

    Esta acción le lleva al panel de Log Analytics con consultas predefinidas.

Hay otros puntos de entrada para ver los registros. También puede encontrar el botón Ver registros para componentes administrados, como Build Service y Service Registry.

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>

A continuación, puede reemplazar el token por caracteres de nueva línea en Log Analytics, como se muestra en el ejemplo siguiente:

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