Escrever e ver registros

A geração de registros é uma ferramenta importante para depurar e monitorar códigos. O Cloud Functions oferece o mesmo objeto de console que seria usado durante o desenvolvimento para a Web.

Gravar registros

Registros simples

Para emitir uma linha de registro a partir de sua função, use chamadas de registro padrão do JavaScript, como console.log e console.error:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
  • Comandos console.log() têm o nível de registro INFO.
  • Comandos console.info() têm o nível de registro INFO.
  • Comandos console.warn() têm o nível de registro ERROR.
  • Comandos console.error() têm o nível de registro ERROR.
  • As mensagens internas do sistema têm o nível DEBUG.

Registros personalizados do StackDriver

Os registros do Cloud Functions são respaldados pelo StackDriver Logging. Use a biblioteca StackDriver Logging para Node.js para registrar eventos com dados estruturados, facilitando a análise e o monitoramento.

const { Logging } = require('@google-cloud/logging');

// ...

// Instantiate the StackDriver Logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');

// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
  resource: {
    type: 'cloud_function',
    labels: {
      function_name: 'CustomMetrics',
      region: 'us-central1'
    }
  }
};

// ...

// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
  event: 'my-event',
  value: 'foo-bar-baz',

  // Optional 'message' property will show up in the Firebase
  // console and other human-readable logging surfaces
  message: 'my-event: foo-bar-baz'
};

// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);

Ver registros

Os registros para o Cloud Functions são visíveis no Console do Firebase, na IU do Stackdriver Logging ou na ferramenta de linha de comando firebase.

Como usar a Firebase CLI

Para ver registros com a ferramenta firebase, use o comando functions:log:

firebase functions:log

Para ver registros de uma função específica, forneça o nome da função como um argumento:

firebase functions:log --only <FUNCTION_NAME>

Para ver todas as opções de visualização de registro, confira a ajuda sobre functions:log:

firebase help functions:log

Usar o Console do Firebase

Você pode ver os registros para o Cloud Functions no Console do Firebase.

Usar a IU do Stackdriver Logging

Você pode ver os registros para o Cloud Functions na IU do Stackdriver Logging.

Analisar registros

O StackDriver Logging inclui um conjunto de ferramentas eficientes para análise de registros que podem ser usadas para monitorar o Cloud Functions. Essas ferramentas são particularmente eficientes quando combinadas com a geração de registros personalizados.

Métricas com base em registros

Na IU do StackDriver Logging, use o campo "filtro avançado" para restringir o escopo do registro para a função que quer analisar e clique em Enviar filtro para filtrar os registros. Por exemplo, é possível analisar apenas os registros de uma única função:

resource.type="cloud_function"
resource.labels.function_name="myCloudFunction"
resource.labels.region="us-central1"

Se você registrou eventos com payloads JSON personalizados, poderá filtrar usando as chaves e os valores fornecidos:

resource.type="cloud_function"
resource.labels.function_name="CustomMetrics"
jsonPayload.event="my-event"

Depois de filtrar os registros, é possível analisá-los usando métricas com base em registros. Clique no botão Criar métrica para abrir o editor de métricas e selecione um tipo de métrica:

  • Métricas de contagem: contam o número de entradas de registro que correspondem a um filtro. Por exemplo, é possível contar o número de vezes que um determinado evento ocorre.
  • Métricas de distribuição: acumulam dados numéricos de entradas de registro que correspondam a um filtro. Por exemplo, é possível rastrear as latências de certas operações dentro de suas funções.

Para registros baseados em texto, como aqueles resultantes de console.log() em suas funções, é possível extrair valores e rótulos do campo textPayload usando expressões regulares. Para registros personalizados com dados estruturados, é possível acessar diretamente os dados no campo jsonPayload.

Gráficos e alertas

Depois de ter criado métricas baseadas em registros para monitorar suas funções, você pode criar gráficos e alertas com base nessas métricas. Por exemplo, é possível criar um gráfico para visualizar a latência ao longo do tempo ou criar um alerta para saber se um determinado erro ocorre com muita frequência.

Consulte Criar gráficos e alertas para saber informações detalhadas sobre como usar métricas baseadas em registros em gráficos e políticas de alerta.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.