Visualiza y escribe registros de Cloud Run Functions
Escribe registros del entorno de ejecución
De forma predeterminada, Cloud Run Functions incluye registros sencillos sobre el entorno de ejecución. Los registros que se escriban en stdout
o stderr
aparecerán de forma automática en la consola de Google Cloud.
Para obtener un registro más avanzado, usa las bibliotecas cliente de Cloud Logging.
De forma predeterminada, la carga útil del registro es una string de texto simple, como se muestra en los siguientes fragmentos. La string se almacena en el campo textPayload
de la entrada de registro.
Node.js
La mayoría de las entradas de registro no tienen un nivel de registro asociado. Estos incluyen los siguientes:- Registros emitidos con
console.log()
,console.info()
,console.warn()
oconsole.error()
- Registros escritos directamente en
stdout
ostderr
Los mensajes internos del sistema tienen el nivel de registro DEBUG
.
Python
- Los registros escritos en los flujos estándares de salida o error no tienen un nivel de registro asociado.
- Los mensajes internos del sistema tienen el nivel de registro
DEBUG
.
Go
- Los registros escritos en
stdout
ostderr
no tienen un nivel de registro asociado. - Los mensajes internos del sistema tienen el nivel de registro
DEBUG
.
Java
- Los registros escritos en
stdout
ostderr
no tienen un nivel de registro asociado. - Los mensajes internos del sistema tienen el nivel de registro
DEBUG
.
C#
- El texto escrito en
stdout
(por ejemplo, a través deConsole.WriteLine
) ystderr
(por ejemplo, a través deConsole.Error.WriteLine
) no tiene un nivel de registro. - Los niveles de registro de ASP.NET Core se mapean a los niveles de Cloud Logging de la siguiente manera:
LogLevel.Trace
yLogLevel.Debug map
aDEBUG
de Cloud LoggingLogLevel.Information
se mapea aINFO
de Cloud LoggingLogLevel.Warning
se mapea aWARNING
de Cloud LoggingLogLevel.Error
se mapea aERROR
de Cloud LoggingLogLevel.Critical
se mapea aCRITICAL
de Cloud Logging
Ruby
Las entradas de registro no tienen un nivel de registro asociado.
PHP
Escribe registros estructurados
Los registros de texto predeterminados descritos con anterioridad no tienen un nivel de registro asociado.
Si deseas incluir niveles de registro o algún otro campo específico en las entradas de registro, puedes escribir registros en stdout
o stderr
en el formato de una sola línea con JSON serializado. Cloud Run Functions toma y analiza esta línea, y la coloca en el campo jsonPayload
en lugar de textPayload
. Los siguientes fragmentos demuestran cómo escribir esos registros estructurados.
Node.js
Python
La compatibilidad con el registro estructurado está disponible en Python 3.8 y versiones posteriores.
Go
Un tipo de Entry
proporciona la estructura para cada entrada de registro:
Cuando se registra una estructura de Entry, se llama al método String
para serializarla según el formato JSON que espera Cloud Logging:
Java
Para habilitar el registro JSON con Logback y SLF4J, debes habilitar el codificador de JSON de Logstash en la configuración logback.xml
.
Procesa campos JSON especiales en mensajes
Cuando proporcionas datos estructurados como un diccionario JSON, algunos campos especiales se extraen de jsonPayload
y se escriben en el campo correspondiente en el LogEntry
generado, como se describe en la documentación de campos especiales.
Por ejemplo, si el JSON incluye una propiedad severity
, se quita de jsonPayload
y aparece como la severity
de la entrada de registro. La propiedad message
se usa como el texto de visualización principal de la entrada de registro, si está presente.
Escribe registros mediante bibliotecas cliente
Las bibliotecas cliente de Cloud Logging proporcionan una forma alternativa de escribir registros. Con estas bibliotecas, puedes usar los mecanismos de registro estándar de tu lenguaje de programación y, también, integrarlos en varios frameworks de registro compatibles. Las bibliotecas cliente también simplifican la propagación de los campos JSON especiales, ya que capturan información de forma automática y proporcionan interfaces para propagar correctamente los campos.
Puedes usar las bibliotecas cliente para escribir registros con la API de Cloud Logging de forma síncrona o asíncrona. Algunas bibliotecas cliente también admiten la escritura de registros estructurados directamente en stdout
o stderr
. Ten en cuenta que si escribes registros de forma asíncrona, la finalización inesperada de funciones puede provocar la pérdida de entradas de registro.
Además, ten en cuenta que el registro síncrono con la API de Logging aumenta el tiempo de ejecución de la función, ya que requiere que se completen las llamadas a la API.
Visualiza los registros del entorno de ejecución
Usa la herramienta de línea de comandos
Los registros de Cloud Run Functions se pueden ver en la IU de Cloud Logging y a través de Google Cloud CLI.
Para ver los registros con gcloud CLI, usa el comando gcloud functions logs read
:
gcloud functions logs read --gen2
Para ver los registros de una función específica, proporciona el nombre de la función como un argumento:
gcloud functions logs read FUNCTION_NAME --gen2
En el caso de las funciones en otros lenguajes, los registros se pueden correlacionar de la misma ejecución de función con el encabezado de la solicitud de x-cloud-trace-context
.
Para ver la gama completa de opciones de visualización de registros, consulta la documentación de gcloud functions logs read
.
Usa el panel de Logging
También puedes ver los registros del entorno de ejecución de Cloud Run Functions en la consola de Google Cloud.
Usa la API de Logging
Los registros del entorno de ejecución también se pueden escribir y recuperar a través de la API de Cloud Logging. Las bibliotecas cliente de Cloud Logging proporcionan una interfaz idiomática a la API de Logging:
Node.js
Para obtener más información, consulta la referencia de la biblioteca cliente de Node.js.Python
Para obtener más información, consulta la referencia de la biblioteca cliente de Python.Go
Para obtener más información, consulta la referencia de la biblioteca cliente de Go.Java
Para obtener más información, consulta la referencia de la biblioteca cliente de Java.C#
Ruby
PHP
Si quieres obtener más opciones de registro para Java, consulta Java Logging.
Información sobre los registros de escalamiento de instancias
Cuando se inician instancias nuevas para tu función, Cloud Logging
incluye entradas de registro con el nombre de registro varlog/system
para reflejar por qué se creó cada
instancia. La entrada de registro sigue este formato:
Starting new instance. Reason: REASON - DESCRIPTION
En la siguiente tabla, se proporciona un desglose de las descripciones de las instancias:
Motivo | Descripción |
---|---|
CUSTOMER_MIN_INSTANCE |
Es la instancia mínima configurada por el cliente para la función. |
SCHEDULED |
La instancia se inició debido a los factores de escalamiento configurados (p.ej., uso de CPU, capacidad de procesamiento de solicitudes, etc.) y sus objetivos. |
OVERFLOW |
Se inició la instancia porque no se encontró capacidad existente para el tráfico actual. |
Responde los registros del entorno de ejecución
Para responder a los eventos de Cloud Logging reenvía sus registros a una Cloud Run Function. Para obtener más información, consulta la página Activadores secundarios con Cloud Logging.
Visualiza registros de compilación de imágenes
También puedes ver los registros del paso que abarca la compilación de imágenes del proceso de implementación. Consulta el vínculo para obtener más información.