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:
Source | 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
.
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