Ver e gravar registros do Cloud Run functions
Como gravar registros do ambiente de execução
O Cloud Run functions inclui por padrão a geração simples de registros do ambiente de execução. Os registros gravados em stdout
ou
stderr
serão exibidos automaticamente no
Console do Google Cloud.
Para ter uma geração de registros
mais avançada, use as bibliotecas de cliente do Cloud Logging.
Por padrão, o payload do registros é uma string de texto simples, conforme mostrado nos snippets
a seguir. A string é armazenada no campo textPayload
da entrada de registro.
Node.js
A maioria das entradas de registro não tem um nível de registro associado. Por exemplo:- Registros emitidos usando
console.log()
,console.info()
,console.warn()
ouconsole.error()
- Registros gravados diretamente em
stdout
oustderr
Mensagens internas do sistema têm o nível DEBUG
.
Python
- Os registros da saída padrão ou de erros padrão não têm um nível de registro associado.
- Mensagens internas do sistema têm o nível
DEBUG
.
Go
- Os registros de
stdout
oustderr
não têm um nível de registro associado. - Mensagens internas do sistema têm o nível
DEBUG
.
Java
- Os registros de
stdout
oustderr
não têm um nível de registro associado. - Mensagens internas do sistema têm o nível
DEBUG
.
C#
- Texto escrito para
stdout
(por exemplo, viaConsole.WriteLine
) estderr
(por exemplo, viaConsole.Error.WriteLine
) não têm um nível de registro. - Os níveis de registro do ASP.NET Core são mapeados nos níveis do Cloud Logging da seguinte forma:
LogLevel.Trace
eLogLevel.Debug map
para o Cloud LoggingDEBUG
.LogLevel.Information
é mapeado para o Cloud LoggingINFO
.LogLevel.Warning
é mapeado para o Cloud LoggingWARNING
.LogLevel.Error
é mapeado para o Cloud LoggingERROR
.LogLevel.Critical
é mapeado para o Cloud LoggingCRITICAL
.
Ruby
As entradas de registro não têm um nível de registro associado.
PHP
Como gravar registros estruturados
Os registros de texto padrão descritos acima não têm um nível de registro associado.
Se quiser incluir níveis de registro ou outros
campos
específicos nas entradas, grave os registros em stdout
ou stderr
na
forma uma única linha de JSON serializado Essa linha é capturada e analisada pelo
Cloud Run functions e colocada no campo jsonPayload
em vez de
textPayload
. Os snippets abaixo demonstram como gravar esses registros estruturados.
Node.js
Python
O suporte à geração de registros estruturados está disponível no Python 3.8 e versões posteriores.
Go
A estrutura de cada entrada de registro é fornecida por um tipo Entry
:
Quando uma estrutura de entrada é registrada, o método String
é chamado para organizá-la no formato JSON esperado pelo Cloud Logging:
Java
Para ativar a geração de registros JSON com Logback e SLF4J,
acione o Codificador JSON do Logstash
(links em inglês) na configuração do logback.xml
.
Como processar campos JSON especiais em mensagens
Quando você fornece dados estruturados como um dicionário JSON, alguns campos especiais são
retirados do jsonPayload
e gravados no campo correspondente na
LogEntry
gerada, conforme
descrito na documentação de campos especiais.
Por exemplo, se o JSON incluir uma propriedade severity
, ela será removida do
jsonPayload
e aparecerá como a severity
da entrada de registro. A propriedade message
é usada como o texto de exibição principal da entrada de registro, se houver.
Como gravar registros usando bibliotecas de cliente
As bibliotecas de cliente do Cloud Logging são uma maneira alternativa de gravar registros. Com essas bibliotecas, é possível usar os mecanismos de geração de registros padrão da sua linguagem de programação e fazer a integração com vários frameworks de geração de registros compatíveis. As bibliotecas de cliente também simplificam o preenchimento dos campos JSON especiais capturando automaticamente algumas informações e fornecendo interfaces para preencher adequadamente os campos.
É possível usar bibliotecas de cliente para gravar registros com a API Cloud Logging
de maneira síncrona ou assíncrona. Algumas bibliotecas de cliente também são compatíveis com a gravação
de registros estruturados diretamente em stdout
ou stderr
. Se a gravação dos registros for
feita de maneira assíncrona, o encerramento inesperado da função poderá
resultar na perda de entradas de registro.
Além disso, a geração de registros síncrona com a API Logging
aumenta o tempo de execução da função, porque ela
exige que as chamadas de API sejam concluídas.
Como visualizar registros do ambiente de execução
Como usar a ferramenta de linha de comando
Os registros das funções do Cloud Run podem ser visualizados na UI do Cloud Logging e usando a CLI do Google Cloud.
Para conferir os registros com a gcloud CLI, use o
comando
gcloud functions logs read
:
gcloud functions logs read --gen2
Para ver os registros de uma função específica, digite o nome da função como argumento:
gcloud functions logs read FUNCTION_NAME --gen2
Para funções em outras linguagens, os registros podem ser correlacionados
da mesma execução de função usando o cabeçalho da solicitação x-cloud-trace-context
.
Para ver todas as opções de visualização de registros, consulte a documentação do
gcloud functions logs read
.
Como usar o painel do Logging
Também é possível ver os registros do ambiente de execução do Cloud Run functions no Console do Google Cloud.
Como usar a API Logging
Os registros do ambiente de execução também podem ser gravados e recuperados por meio da API Logging. As bibliotecas de cliente do Cloud Logging oferecem uma interface idiomática para a API Logging:
Node.js
Para ver mais informações, consulte a referência da biblioteca de cliente do Node.js.Python
Para mais informações, consulte a referência da biblioteca de cliente do Python.Go
Para mais informações, consulte a referência da biblioteca de cliente do Go.Java
Para mais informações, consulte a referência da biblioteca de cliente do Java.C#
Ruby
PHP
Para outras opções de geração de registros do Java, consulte este link.
Entender os registros de escalonamento de instância
Quando novas instâncias são iniciadas para seu serviço, o Cloud Logging
inclui entradas de registro no nome de registro varlog/system
para refletir por que cada
instância foi criada. A entrada de registro segue este formato:
Starting new instance. Reason: REASON - DESCRIPTION
A tabela a seguir mostra um detalhamento das descrições de instâncias:
Motivo | Descrição |
---|---|
CUSTOMER_MIN_INSTANCE |
Instância mínima configurada pelo cliente para o serviço. |
SCHEDULED |
A instância foi iniciada devido a fatores de escalonamento configurados (por exemplo, utilização da CPU, taxa de transferência de solicitações etc.) e aos respectivos destinos. |
OVERFLOW |
A instância foi iniciada porque não foi encontrada capacidade para o tráfego atual. |
Como responder a registros do ambiente de execução
Responda a eventos do Cloud Logging encaminhando os registros para uma função do Cloud Run. Para mais informações, consulte a página Gatilhos secundários com o Cloud Logging.
Como ver registros de imagem do build
Você também pode ver os registros da etapa de criação da imagem do processo de implantação. Acesse o link para mais informações.