Firebase Functions - Monitorar Logs e Rastrear requisições

Olá meus Unicórnios! 🦄✨

É essencial conseguirmos ver o que esta ocorrendo nas funções.

Para isto, iremos utilizar a dependência "firebase-functions/logger" que ira relacionar todos os logs na requisição:

const {
log,
info,
debug,
warn
} = require("firebase-functions/logger");

As chamadas, para gravar logs, são iguais ao nativo "console.log":

log('>> log <<');
info('>> info <<');
debug('>> debug <<');
warn('>> warn <<');

💡
Observe que não carreguei o "error", isto porque, além de gravar o log gera um "throw new Error" que PARA a função.

Então, iremos adaptar em nossa função "helloworld":

const functions = require("firebase-functions");  
const cors = require('cors')({origin: true});
const {
log,
info,
debug,
warn
} = require("firebase-functions/logger");

exports.helloworld = functions.https.onRequest((req, res) => {

    cors(req, res, () => {

        log('>> log <<');
        info('>> info <<');
        debug('>> debug <<');
        warn('>> warn <<');

        res.json({ Status: "OK" });

    });

});

Após fazer o Deploy, iremos abrir o link algumas vezes para gerar requisições.

Acesse o console do Firebase e acesse o seu projeto.

No menu da esquerda, clique em "Criação -> Functions":

Passe o mouse na função "helloworld" e clique nos três pontinhos da direita:

Clique em "Mostrar Registros":

Filtre pelo Período desejado:

E observe os logs de nossa função:

Neste log, as requisições tem a indicação da Url completa, o método utilizado, e o Tempo que levou:

Nesta linha, você pode ver todos os logs relacionados a esta requisição, clicando em "Mostrar Entradas deste Trace":

Mas como como rastrear o Log de uma requisição especifica?


Observe que nas requisições, é retornado o header "x-cloud-trace-context", este é o ID de rastreamento de eventos relacionados a esta requisição:

Neste exemplo, é:

849f13fa800594bfad55a6b98eee15f1;o=1

Iremos utilizar apenas o que estiver antes do ";":

849f13fa800594bfad55a6b98eee15f1

Volte ao Painel de Logs do Google, e insira a linha abaixo, para buscar os logs relacionados a este "ID" de rastreamento:

trace="projects/testespaloma/traces/849f13fa800594bfad55a6b98eee15f1"

E clique em "Executar Comando":

Agora todos os Logs desta requisição serão exibidos:

Por hoje é só, meus unicórnios! 🦄✨

Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟