En esta página se describen los registros disponibles al usar Cloud Run y cómo verlos y escribirlos.
Cloud Run tiene varios tipos de registros, que se envían automáticamente a Cloud Logging:
- Registros de solicitudes (solo servicios): registros de las solicitudes enviadas a los servicios de Cloud Run. Estos registros se crean automáticamente.
- Registros de contenedores (servicios, trabajos y grupos de trabajadores): registros emitidos desde las instancias, normalmente desde tu propio código, escritos en las ubicaciones admitidas, tal como se describe en Escribir registros de contenedores.
- Registros del sistema (servicios, trabajos y grupos de trabajadores): registros generados por la plataforma que contienen información sobre tus cargas de trabajo. Estos registros se escriben en
varlog/system
.
Ver registros
Puedes ver los registros de tu servicio, trabajo o grupo de trabajadores de varias formas:
- Usar la página Cloud Run en la Google Cloud consola
- Usar Google Cloud CLI para ver los registros con gcloud (solo servicios)
- Usar el Explorador de registros de Cloud Logging en la Google Cloud consola
- Usar Cloud Code (solo servicios)
Ambos métodos de la consola para ver los registros examinan los mismos registros almacenados en Cloud Logging, pero Explorador de registros de Cloud Logging proporciona más detalles y más funciones de filtrado.
Ver registros en Cloud Run
Puedes ver los registros en la página de Cloud Run de los siguientes recursos:
Ver los registros de un servicio
Para ver los registros de servicio en la página de Cloud Run, sigue estos pasos:
Haz clic en el servicio de la lista que se muestra.
Haz clic en la pestaña REGISTROS para obtener los registros de solicitudes y de contenedores de todas las revisiones de este servicio. Puedes filtrar por nivel de gravedad del registro.
Ver los registros de un trabajo
Para ver los registros de un trabajo en la página de Cloud Run, sigue estos pasos:
Haz clic en Tareas.
Busca el trabajo en la lista de trabajos y haz clic en él.
Haz clic en la pestaña REGISTROS para obtener los registros del contenedor de todas las ejecuciones de este trabajo. Puedes filtrar por nivel de gravedad del registro.
También puedes hacer clic en la ejecución del trabajo y, a continuación, en la pestaña REGISTROS para ver los registros prefiltrados de una ejecución de trabajo específica.
Ver los registros de un grupo de trabajadores
Para ver los registros del grupo de trabajadores en la página de Cloud Run, sigue estos pasos:
Haz clic en Grupos de trabajadores.
Haz clic en el grupo de trabajadores de la lista que se muestra.
Haz clic en la pestaña REGISTROS para obtener los registros de solicitudes y contenedores de todas las revisiones de este grupo de trabajadores. Puedes filtrar por nivel de gravedad del registro.
Ver registros de servicios con Google Cloud CLI
Puedes usar la CLI de Google Cloud para ver los registros finales o leer los registros de un servicio de Cloud Run en la línea de comandos. De forma predeterminada, los registros tienen un formato de una sola línea optimizado para la consola.
Para monitorizar registros, debes instalar el componente log-streaming
en Google Cloud CLI. Si el componente no está instalado, se te pedirá que lo instales cuando sea necesario.
Ver registros finales en la línea de comandos
En el caso de un servicio de Cloud Run, puedes ver los registros en tiempo real desde tu servicio de Cloud Run directamente en la línea de comandos:
gcloud beta run services logs tail SERVICE --project PROJECT-ID
Sustituye:
- SERVICE con el nombre del servicio de Cloud Run.
- PROJECT-ID con el Google Cloud ID del proyecto. Para ver el ID de tu proyecto, ejecuta el comando
gcloud config get-value project
.
Leer registros en la línea de comandos
En el caso de un servicio de Cloud Run, puedes leer los registros de dos formas:
- En un formato optimizado para consolas:
gcloud run services logs read SERVICE --limit=10 --project PROJECT-ID
- Directamente desde Cloud Logging:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=SERVICE" --project PROJECT-ID --limit 10
Sustituye:
- SERVICE con el nombre del servicio de Cloud Run.
- PROJECT-ID con el Google Cloud ID del proyecto. Para ver el ID de tu proyecto, ejecuta el comando
gcloud config get-value project
.
Ver los registros en Cloud Logging
Para ver los registros de Cloud Run en el explorador de registros de Cloud Logging, sigue estos pasos:
Ve a la página Explorador de registros de laGoogle Cloud consola:
Selecciona un Google Cloud proyecto en la parte superior de la página o crea uno.
En los menús desplegables, selecciona el recurso:
- Revisión de Cloud Run de un servicio
- Tarea de Cloud Run para una tarea
- Grupo de trabajadores de Cloud Run para un grupo de trabajadores
Para obtener más información, consulta el artículo sobre cómo usar el Explorador de registros.
Ver registros de servicio en Cloud Code
Para ver tus registros en Cloud Code, consulta las guías de IntelliJ y Visual Studio Code.
Leer registros mediante programación
Si quieres leer los registros de forma programática, puedes usar uno de estos métodos:
- Usa un sumidero de registro en Pub/Sub y una secuencia de comandos para extraer datos de Pub/Sub.
- Llama a la API Logging a través de las bibliotecas de cliente de tu lenguaje de programación.
- Llama directamente a los endpoints de la API REST Logging.
Formato y contenido de los registros de escalado de instancias
Cuando se inician nuevas instancias de tu servicio de Cloud Run, Cloud Logging incluye entradas de registro con el nombre varlog/system
que explican por qué se ha creado cada instancia. La entrada de registro sigue este formato:
Starting new instance. Reason: REASON - DESCRIPTION
En la siguiente tabla se desglosan las descripciones de las instancias:
Motivo | Descripción |
---|---|
MANUAL_OR_CUSTOMER_MIN_INSTANCE |
La instancia se ha iniciado debido a la cantidad mínima de instancias o al escalado manual configurados por el cliente. |
AUTOSCALING |
La instancia se ha iniciado debido a los factores de escalado configurados (como la utilización de la CPU, el rendimiento de las solicitudes, etc.) o a que no hay suficiente capacidad para el tráfico actual. |
DEPLOYMENT_ROLLOUT |
La instancia se ha iniciado porque el tráfico se ha desplazado entre las revisiones debido a una implementación, a un ajuste de la división del tráfico o a una comprobación del estado de la implementación. |
Escribir registros de contenedores
Cuando escribas registros desde tu servicio, trabajo o grupo de trabajadores, Cloud Logging los recogerá automáticamente siempre que se escriban en alguna de estas ubicaciones:
- Flujos de salida estándar (
stdout
) o de error estándar (stderr
) - Cualquier archivo del directorio
/var/log
- syslog (
/dev/log
) - Registros escritos con bibliotecas de cliente de Cloud Logging, disponibles en muchos lenguajes populares
La mayoría de los desarrolladores deben escribir registros mediante la salida estándar y el error estándar.
Los registros de contenedor escritos en estas ubicaciones admitidas se asocian automáticamente al servicio, la revisión y la ubicación de Cloud Run, al grupo de trabajadores, la revisión y la ubicación de Cloud Run, o al trabajo de Cloud Run. Las excepciones que contienen estos registros se capturan y se registran en Error Reporting.
El registro integrado equilibra la fiabilidad y el uso de recursos, y debería funcionar en la mayoría de las aplicaciones. Escribir entradas de registro mediante el registro integrado no consume cuota para el número de solicitudes entries.write
por minuto de la API Cloud Logging.
Si tu aplicación tiene requisitos de mayor volumen o fiabilidad, te recomendamos que uses la API Cloud Logging directamente, ya sea como una biblioteca en tu aplicación o como un contenedor sidecar independiente.
Usar texto simple en lugar de JSON estructurado en los registros
Cuando escribes registros, puedes enviar una cadena de texto simple o una sola línea de JSON serializado, también llamada datos "estructurados". Cloud Logging la recoge y la analiza, y la coloca en jsonPayload
. En cambio, el mensaje de texto simple se coloca en textPayload
.
Escribir registros estructurados
El siguiente fragmento muestra cómo escribir entradas de registro estructuradas. También se muestra cómo correlacionar los mensajes de registro con el registro de solicitudes correspondiente.
Node.js
Python
Go
La estructura de cada entrada de registro se proporciona mediante un tipo Entry
:
Cuando se registra una estructura Entry, se llama al método String
para serializarla en el formato JSON que espera Cloud Logging:
Java
Para habilitar el registro JSON con Logback y SLF4J, habilita Logstash JSON Encoder en tu configuración de logback.xml
.
Personaliza los nombres de los campos estándar para excluir el contenido no deseado de la ingestión en la carga útil de los registros. Para ver una lista de nombres de campos y formatos de datos esperados, consulta Usar el agente de registro.
Campos JSON especiales en mensajes
Cuando proporcionas un registro estructurado como un diccionario JSON, se eliminan algunos campos especiales del jsonPayload
y se escriben en el campo correspondiente del LogEntry generado, tal como se describe en la documentación de los campos especiales.
Por ejemplo, si tu JSON incluye una propiedad severity
, se elimina del jsonPayload
y aparece en su lugar como severity
de la entrada de registro.
La propiedad message
se usa como texto principal de la entrada de registro, si está presente.
Para obtener más información sobre las propiedades especiales, consulta la sección Recurso de registro de abajo.
Correlacionar los registros de tu contenedor con un registro de solicitudes (solo servicios)
En el Explorador de registros, los registros correlacionados por el mismo trace
se pueden ver en formato "principal-secundario": cuando haces clic en el icono de triángulo situado a la izquierda de la entrada del registro de solicitudes, los registros del contenedor relacionados con esa solicitud se muestran anidados en el registro de solicitudes.
Los registros de contenedor no se correlacionan automáticamente con los registros de solicitudes a menos que uses una biblioteca de cliente de Cloud Logging.
Para correlacionar los registros de contenedores con los registros de solicitudes sin usar una biblioteca de cliente, puedes usar una línea de registro JSON estructurada que contenga un campo logging.googleapis.com/trace
con el identificador de la traza extraído del encabezado X-Cloud-Trace-Context
, tal como se muestra en el ejemplo anterior de registro estructurado.
Controlar el uso de recursos de registro de solicitudes (solo servicios)
Los registros de solicitudes se crean automáticamente. Aunque no puedes controlar la cantidad de registros de solicitudes directamente desde Cloud Run, puedes usar la función de exclusión de registros de Cloud Logging.
Nota sobre los agentes de registro
Si has usado Cloud Logging con determinados Google Cloud productos, como Compute Engine, es posible que hayas usado agentes de registro de Cloud Logging. Cloud Run no usa agentes de registro porque tiene compatibilidad integrada con la recopilación de registros.
Nombres de recursos de registro
Los nombres de recursos de registro de Cloud Run son los siguientes:
- Revisión de Cloud Run (
cloud_run_revision
). - Trabajo de Cloud Run (
cloud_run_job
). - Grupo de trabajadores de Cloud Run (
cloud_run_workerpool
).
Recursos de registro
Al hacer clic en una entrada de registro en el Explorador de registros, se abre una entrada de registro con formato JSON para que puedas desglosar la información que quieras.
Todos los campos de una entrada de registro, como las marcas de tiempo, la gravedad y httpRequest
son estándar y se describen en la documentación de una
entrada de registro.
Cloud Run añade metadatos adicionales para que puedas identificar la fuente de un registro. Esto incluye las etiquetas que definas en tu servicio de Cloud Run y las etiquetas de recursos específicas de Cloud Run.
Campos de entrada de registro de un servicio
A continuación, se muestra una lista de los campos que se pueden encontrar en la entrada de registro de un servicio de Cloud Run:
Campo | Valores y notas |
---|---|
LogEntry.labels.instanceId |
La instancia que ha gestionado la solicitud. |
LogEntry.labels.run.googleapis.com/base_image_versions |
Versión de la imagen base que usa el servicio. Solo aparece en los servicios implementados desde la fuente y si la opción Actualizaciones de seguridad automáticas está habilitada. |
LogEntry.labels.run.googleapis.com/cloud_event_id |
El ID de CloudEvent. Solo aparece en los servicios que reciben eventos de Eventarc. |
LogEntry.labels.run.googleapis.com/cloud_event_source |
Origen de CloudEvent. Solo aparece en los servicios que reciben eventos de Eventarc. |
LogEntry.labels. mylabel,LogEntry.labels. mysecondlabel |
Las etiquetas que has definido en el servicio. |
LogEntry.logName |
Identifica el registro (por ejemplo, registro de solicitudes, error estándar, salida estándar, etc.). |
LogEntry.resource.labels.location |
Identifica la ubicación de Google Cloud del servicio. |
LogEntry.resource.labels.project_id |
El proyecto en el que se ha implementado el servicio. |
LogEntry.resource.labels.revision_name |
La revisión que ha servido la solicitud. |
LogEntry.resource.labels.service_name |
El servicio que ha atendido la solicitud. |
LogEntry.resource.type |
cloud_run_revision . El tipo de recurso de Cloud Run. |
Aquí tienes un ejemplo de entrada de registro de solicitudes de un servicio de Cloud Run:
{
httpRequest: {…}
insertId: "5c82b3d1000ece0000000000"
labels: {
instanceId: "00bf4bf00000fb59c906a00000c9e29c2c4e06dce91500000000056008d2b6460f163c0057b97b2345f2725fb2423ee5f0bafd36df887fdb1122371563cf1ff453717282afe000001"
mylabel: "mylabelvalue"
mysecondlabel: "mysecondlabelvalue"
}
logName: "projects/my-project/logs/run.googleapis.com%2Frequests"
receiveTimestamp: "2019-03-08T18:26:25.981686167Z"
resource: {
labels: {
configuration_name: "myservice"
location: "europe-west1"
project_id: "my-project"
revision_name: "myservice-00002"
service_name: "myservice"
}
type: "cloud_run_revision"
}
severity: "INFO"
timestamp: "2019-03-08T18:26:25.970397Z"
}
Campos de entrada de registro de trabajos
A continuación, se muestra una lista de los campos que se pueden encontrar en la entrada de registro de un trabajo de Cloud Run:
Campo | Valores y notas |
LogEntry.labels.instanceId | La instancia. |
LogEntry.labels.mylabel,
LogEntry.labels.mysecondlabel |
Las etiquetas que has definido en la tarea. |
LogEntry.logName | Identifica el registro (por ejemplo, error estándar, salida estándar, etc.). |
LogEntry.resource.labels.location | Identifica la Google Cloud ubicación del empleo. |
LogEntry.resource.labels.project_id | El proyecto en el que se implementa la tarea. |
LogEntry.resource.labels.job_name | El nombre del trabajo. |
LogEntry.labels.execution_name | Nombre de la ejecución del trabajo. |
LogEntry.labels.task_index | Índice de la tarea. |
LogEntry.labels.task_attempt | Número de veces que se ha intentado realizar esta tarea. |
LogEntry.resource.type | cloud_run_job . El tipo de recurso de Cloud Run.
|
Campos de entrada de registro de grupos de trabajadores
A continuación, se muestra una lista de los campos que se pueden encontrar en la entrada de registro de un grupo de trabajadores de Cloud Run:
Campo | Valores y notas |
LogEntry.labels.instanceId | La instancia. |
LogEntry.labels.mylabel,
LogEntry.labels.mysecondlabel |
Las etiquetas que has definido en el grupo de trabajadores. |
LogEntry.logName | Identifica el registro (por ejemplo, error estándar, salida estándar, etc.). |
LogEntry.resource.labels.location | La Google Cloud ubicación del grupo de trabajadores. |
LogEntry.resource.labels.project_id | El proyecto en el que se ha desplegado el grupo de trabajadores. |
LogEntry.resource.labels.workerpool_name | Nombre del grupo de trabajadores. |
LogEntry.resource.type | cloud_run_workerpool . El tipo de recurso de Cloud Run.
|
Siguientes pasos
- Usa Investigaciones de Gemini Cloud Assist para diagnosticar problemas, obtener estadísticas útiles y resolverlos. Para obtener más información sobre las diferentes formas de iniciar una investigación con el Explorador de registros, consulta el artículo Solucionar problemas con las investigaciones de Gemini Cloud Assist en la documentación de Gemini.