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 <<');
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! 🌈🌟