Envia parte dos logs para o Axiom via API, reduzindo o uso do dreno de logs da Vercel #1838
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Os logs gerados pela integração embutida entre a Vercel e o Axiom continuam sendo encaminhados via dreno de logs da Vercel. No entanto, os logs que criamos diretamente com
logger.info
oulogger.error
agora serão enviados através da API do Axiom. Essa mudança visa reduzir os custos associados ao uso do dreno (alinhado com #1724).Dependendo dos resultados obtidos, podemos considerar a substituição completa da integração atual pela API do Axiom no futuro.
Mudanças realizadas
Foi criada a biblioteca
@tabnews/infra
que, por enquanto, contém apenas o logger. Esse logger integra opino
com o Axiom e a Vercel, permitindo que os logs sejam enviados sem atrasar as respostas das requisições e sem correr o risco de as lambdas serem encerradas antes do envio completo dos logs.A maneira de definir o ID da requisição foi ajustada para priorizar o cabeçalho
x-vercel-id
, facilitando o cruzamento de dados entre os logs enviados pelos diferentes métodos.Foram adicionadas as variáveis de ambiente
AXIOM_DATASET
eAXIOM_TOKEN
, que são necessárias nos ambientes onde a API deve ser utilizada. Sem essas variáveis:console
.Se, localmente, apenas a variável
AXIOM_DATASET
for definida, os logs serão processados pelo pino antes de ir para ostdout
. Isso permite analisar o formato e os dados que seriam enviados ao Axiom.Tipo de mudança
Checklist:
@tabnews/infra
que provam que a correção ou novo recurso funciona conforme esperado.