- Instale o pacote do SDK para o seu runtime.
- Mantenha a chave de ingestão do projeto fora do controle de versão.
- Defina valores estáveis de serviço, ambiente e versão.
- Envie um evento de teste seguro a partir da aplicação.
- Leia o resultado da entrega. Depois, encontre o evento no LogBrew.
Sinais e contexto compartilhado
Os cinco primeiros cartões são sinais. A versão e o ambiente são o contexto desses sinais. Eles não são um tipo de evento separado.log
Uma mensagem estruturada com gravidade, origem, horário e contexto seguro.
trace_span
Uma operação cronometrada, ligada ao trace dela pelos IDs de trace e de
span.
issue
Uma falha capturada, a gravidade dela e os detalhes do erro que a aplicação
enviou.
action
Uma ação na sua aplicação, com identidade, sessão e propriedades seguras
opcionais.
metric
Uma medição numérica com nome, tipo, valor, unidade e temporalidade.
versão e ambiente
A versão do código e o ambiente associados aos eventos seguintes no mesmo escopo do SDK.
Valores de gravidade
Useinfo, warning, error ou critical para logs e problemas. SDKs e
runtimes podem enviar aliases como trace, debug, warn ou fatal. O
LogBrew converte os aliases aceitos para os valores canônicos.
Instalação por gerenciador de pacotes
Instale o pacote do SDK para o runtime que envia a telemetria. Use a configuração de SDK ou de ingestão do projeto fornecida pelo LogBrew. Não use dados de login da conta como configuração do SDK.Trace de requisições no Node.js
Para a correlação de traces com raiz na requisição, use@logbrew/sdk 0.1.16
ou mais recente e @logbrew/node 0.1.11 ou mais recente.
O Express exige @logbrew/express 0.1.5 ou mais recente. O Fastify e o
NestJS exigem o pacote do LogBrew correspondente na versão 0.1.6 ou mais
recente.
Essas integrações criam ou continuam um span por requisição. O nome do span usa
o modelo de rota correspondente. Logs, problemas, ações e métricas dentro da
requisição herdam o contexto de trace e de span dela. Um pacote mais novo não
adiciona contexto a eventos enviados antes da atualização.
A integração padrão de requisições não captura corpos de requisição ou de
resposta, query strings, cabeçalhos arbitrários nem valores brutos de
traceparent.
ASP.NET Core
A CLI v0.1.55 ou mais recente detecta projetos .NET 10 que usamMicrosoft.NET.Sdk.Web. Veja uma prévia do plano de configuração na raiz do
projeto. Este comando não altera seus arquivos:
LOGBREW_SERVER_API_KEY, LOGBREW_SERVICE_NAME,
LOGBREW_ENVIRONMENT e LOGBREW_RELEASE fora do controle de versão.
Registre o LogBrew no host e coloque o middleware dele depois do roteamento:
LOGBREW_SERVER_API_KEY, as duas chamadas de registro não fazem nada e
são seguras. O
pacote NuGet do ASP.NET Core
identifica a integração com o host já publicada. O guia público do pacote
cobre o ciclo de vida do host, a captura de requisições, a captura de
problemas, os limites de privacidade e a recuperação.
Java com Maven ou Gradle
A CLI v0.1.54 ou mais recente detectapom.xml, build.gradle e
build.gradle.kts. Veja uma prévia do plano de configuração na raiz do
projeto. Este comando não altera seus arquivos:
LogBrewClient da própria
aplicação. Ele ativa integrações opcionais de requisições, exceções, cliente
HTTP, JDBC e cache.
A captura do Spring Kafka só é ativada de forma explícita, com
logbrew.kafka.enabled=true. Ela usa a dependência do Spring Kafka e o bean de
cliente que a aplicação já tem.
O artefato do SDK Java no Maven Central
identifica o pacote publicado. O guia público dele cobre a entrega HTTP com
limites, o encerramento, o logging, a configuração do Spring, a correlação com
o Kafka e os limites de privacidade.
C++ com CMake
O SDK de C++ exige C++17 e CMake 3.16 ou mais recente. A CLI v0.1.39 ou mais recente detecta umCMakeLists.txt na raiz. Execute logbrew setup --json
para ver uma prévia deste plano de configuração sem alterar seus arquivos:
FetchContent_MakeAvailable e o
link do target acima por:
logbrew-cpp-0.2.3.tar.gz, específico do C++, da
versão 0.2.3 do C++.
O pacote extraído aceita cmake --install e
find_package(LogBrew 0.2.3 CONFIG REQUIRED). O guia do pacote cobre
contexto tipado, evidências de problemas, eventos de span, métricas, ações e
entrega HTTP.
Source maps de JavaScript
Em builds com Vite, siga Source maps de JavaScript. O guia cobre o plugin, a chave de artefato, as verificações de upload e um problema novo com os locais originais no código-fonte.Apple, Flask e React Native
Use o produto SwiftLogBrew para telemetria. Adicione LogBrewCrash só
para capturar crashes ou travamentos da Apple. Siga
Crashes e travamentos da Apple
para fazer upload de dSYM e usar a simbolização hospedada.
Para Flask, siga Configure o Flask.
Para React Native e Expo, siga React Native. O
guia cobre a chave do projeto, um log de teste seguro, erros de entrega e a
configuração do Metro no Expo para source maps de produção.
Trace de filas no JavaScript
As integrações de filas do Node são pacotes npm separados. Instale os pacotes JavaScript base do LogBrew, o pacote de integração e o cliente de fila ou de broker que a sua aplicação já usa.
Use esses pacotes para correlacionar traces de forma explícita, sob controle da
aplicação, nas chamadas de fila que você escolher. O LogBrew não controla a
conexão com o broker, não cria filas e, por padrão, não modifica globalmente
todos os clientes.
Envelope nativo direto
UsePOST /api/telemetry/ingest só para um cliente próprio que nenhum SDK
público do LogBrew atende. Os SDKs públicos usam um formato de lote próprio.
Este endpoint não aceita esse formato.
Envie de 1 a 512 itens em um envelope nativo. Todos os itens de um envelope
compartilham o projeto, o serviço, a versão, o ambiente e o contexto de trace
opcional.
Campos dos itens
Cada item tem umtype e um objeto data. Um item de log usa level. Um
item de problema usa severity. Os dois aceitam os valores de Valores de gravidade.
Envie um
id em cada item quando o seu cliente puder fazer novas tentativas.
Quando uma nova tentativa reenvia um item aceito com o mesmo id e o mesmo
conteúdo, o LogBrew não o armazena de novo. A resposta conta esse item em
already_accepted.
Exemplo de requisição
Salve o JSON abaixo comotelemetry-envelope.json. Troque o ID de projeto do
exemplo pelo ID exato do projeto da sua chave de ingestão. Preencha os
horários com o horário UTC atual do evento de teste. Use os seus próprios
valores de serviço e de versão.
telemetry-envelope.json
LOGBREW_INGEST_BEARER pela sua
configuração protegida. Não imprima esse valor nem use uma credencial da conta.
O comando a seguir envia o arquivo uma vez. Ele exige o curl 7.76.0 ou mais
recente:
--fail-with-body mantém o corpo do erro e
retorna um código de saída diferente de zero em erros HTTP. Uma falha de rede
ou um timeout não informa se o LogBrew aceitou a requisição. Envie o mesmo
arquivo de novo só quando os itens dele tiverem valores de id. Sem valores de
id, um segundo envio pode armazenar os itens duas vezes.
Resposta
Uma requisição bem-sucedida retorna200 com a contagem de itens novos por
fluxo. already_accepted conta os itens que uma requisição anterior já
entregou.
Erros
Uma chave de ingestão inválida ou revogada retorna401. Uma chave de outro
projeto também retorna 401:
422 com o código
validation_failed. O campo error indica a regra. O campo next diz como
corrigir a requisição. Por exemplo, "items": [] retorna:
422 com o erro
native telemetry envelope exceeds the item limit. Divida o envelope em lotes
de até 512 itens. Mantenha o projeto e o contexto compartilhado em cada lote.
Para limites de uso, limites de requisições e falhas do serviço, siga o
code retornado em Erros da API.
