Supervisión de registros en Azure Container Apps con Log Analytics

Azure Container Apps se integra con Log Analytics de Azure Monitor para supervisar y analizar los registros de la aplicación de contenedor. Al seleccionar la solución de supervisión del registro, el entorno de Container Apps incluye un área de trabajo de Log Analytics que proporciona un lugar común para almacenar los datos de registro de la aplicación y el sistema de todas las aplicaciones de contenedor que se ejecutan en el entorno.

Se puede acceder a las entradas de registro mediante la consulta de las tablas de Log Analytics desde Azure Portal o con un shell de comandos mediante la CLI de Azure.

Hay dos tipos de registros para Container Apps.

  • Registros de consola, emitidos por la aplicación.
  • Registros del sistema, emitidos por el servicio Container Apps.

Registros del sistema

El servicio Container Apps proporciona mensajes de registro del sistema en el nivel de aplicación de contenedor. Los registros del sistema emiten los siguientes mensajes:

Origen Tipo Mensaje
Dapr Información Se creó correctamente el componente de Dapr <component-name> con ámbito <dapr-component-scope>.
Dapr Información Se actualizó correctamente el componente de Dapr <component-name> con ámbito <component-type>.
Dapr Error Error al crear el componente de Dapr <component-name>.
Montajes de volumen Información Se ha montado correctamente el volumen <volume-name> para la revisión <revision-scope>.
Montajes de volumen Error Error al montar el volumen <volume-name>.
Enlace de dominio Información Se ha enlazado correctamente el dominio <domain> a la aplicación de contenedor <container app name>.
Autenticación Información Autenticación habilitada en la aplicación. Creación de la configuración de autenticación
Autenticación Información Configuración de autenticación creada correctamente
Peso del tráfico Información Establecimiento de un peso de tráfico de <percentage>% para la revisión <revision-name\>
Aprovisionamiento de revisiones Información Creación de una revisión: <revision-name>
Aprovisionamiento de revisiones Información La revisión <name> se ha aprovisionado correctamente.
Aprovisionamiento de revisiones Información Desactivación de revisiones antiguas desde "ActiveRevisionsMode=Single"
Aprovisionamiento de revisiones Error Error al aprovisionar la revisión <revision-name>. ErrorCode: <[ErrImagePull]|[Timeout]|[ContainerCrashing]>

Se puede acceder a los datos de registro del sistema consultando la tabla ContainerAppSystemLogs_CL. Las columnas específicas de Container Apps más usadas de la tabla son:

Columna Descripción
ContainerAppName_s Nombre de la aplicación de contenedor
EnvironmentName_s Nombre del entorno de Container Apps
Log_s Mensaje de registro
RevisionName_s Nombre de revisión

Registros de la consola

Los registros de consola se originan a partir de los mensajes stderr y stdout de los contenedores de la aplicación de contenedor y los sidecars de Dapr. Puede ver los registros de la consola consultando la tabla ContainerAppConsoleLogs_CL.

Sugerencia

La instrumentación del código con mensajes de registro bien definidos puede ayudarle a comprender cómo funciona el código y a depurar problemas. Para más información sobre los procedimientos recomendados, consulte Diseño para operaciones.

Columnas específicas de Container Apps usadas más comúnmente en ContainerAppConsoleLogs_CL, incluidas:

Columna Descripción
ContainerAppName_s Nombre de la aplicación de contenedor
ContainerGroupName_g Nombre de la réplica
ContainerId_s Identificador del contenedor
ContainerImage_s Nombre de imagen de contenedor
EnvironmentName_s Nombre del entorno de Container Apps
Log_s Mensaje de registro
RevisionName_s Nombre de revisión

Registro de consultas con Log Analytics

Log Analytics es una herramienta de Azure Portal que puede usar para ver y analizar los datos de registro. Con Log Analytics, puede escribir consultas Kusto y, a continuación, ordenar, filtrar y visualizar los resultados en gráficos para detectar tendencias e identificar problemas. Puede trabajar de forma interactiva con los resultados de la consulta o utilizarlos con otras características, como las alertas, los paneles y los libros.

Azure portal

Inicie Log Analytics desde Registros en el menú de la barra lateral de la página de la aplicación de contenedor. También puede iniciar Log Analytics desde Supervisión>Registros.

Puede consultar los registros mediante las tablas enumeradas en la pestaña Tablas de categoría CustomLogs. Las tablas de esta categoría son las tablas ContainerAppSystemlogs_CL y ContainerAppConsoleLogs_CL.

Screenshot of the Log Analytics custom log tables.

A continuación, se muestra una consulta Kusto que muestra las entradas de registro de la consola de la aplicación de contenedor llamada album-api.

ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100

A continuación, se muestra una consulta Kusto que muestra las entradas de registro del sistema de la aplicación de contenedor llamada album-api.

ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100

Para más información sobre Log Analytics y las consultas del registro, consulte Tutorial de Log Analytics.

Azure CLI/PowerShell

Los registros de Container Apps se pueden consultar mediante la CLI de Azure.

En este ejemplo, las consultas de la CLI de Azure generan una tabla que contiene entradas de registros para el nombre de la aplicación de contenedor album-api. Los parámetros especifican las columnas de la tabla después del operador project. La variable $WORKSPACE_CUSTOMER_ID contiene el GUID del área de trabajo de Log Analytics.

En este ejemplo se consulta la tabla ContainerAppConsoleLogs_CL:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table

En este ejemplo se consulta la tabla ContainerAppSystemLogs_CL:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table

Pasos siguientes