Skip to main content
Instale o pacote do kit de desenvolvimento de software (SDK) do LogBrew para o seu runtime. O SDK formata os eventos e faz a entrega. O guia do pacote lista os tipos de evento, os limites e o comportamento de novas tentativas. Siga estas etapas em cada integração:
  1. Instale o pacote do SDK para o seu runtime.
  2. Mantenha a chave de ingestão do projeto fora do controle de versão.
  3. Defina valores estáveis de serviço, ambiente e versão.
  4. Envie um evento de teste seguro a partir da aplicação.
  5. Leia o resultado da entrega. Depois, encontre o evento no LogBrew.
Um lote aceito chegou à API do LogBrew. Mesmo assim, os filtros podem esconder os eventos dele. Escolha o projeto e o período certos. Depois, confira se o serviço, o ambiente, a versão e o tipo de sinal correspondem. Antes de ativar a captura, escolha e teste os campos aprovados. Para preencher as Análises, siga Captura de eventos de produto.

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

Use info, 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 usam Microsoft.NET.Sdk.Web. Veja uma prévia do plano de configuração na raiz do projeto. Este comando não altera seus arquivos:
O plano do pacote publicado instala a integração com o host:
Defina 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:
Sem 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 detecta pom.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:
No Maven, adicione o pacote publicado:
No Gradle Kotlin DSL, adicione o mesmo artefato do Maven Central:
Use o Java 11 ou mais recente. Aplicações Spring Boot 3 e 4 podem expor um bean 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 um CMakeLists.txt na raiz. Execute logbrew setup --json para ver uma prévia deste plano de configuração sem alterar seus arquivos:
O target principal não tem dependências. Para enviar lotes pelo transporte opcional com libcurl, troque a chamada final FetchContent_MakeAvailable e o link do target acima por:
Configure a aplicação. Depois, faça o build para testar a versão do SDK escolhida:
Em builds que não conseguem baixar o monorepo do SDK, use o arquivo 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 Swift LogBrew 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.
Mantenha payloads de filas, cabeçalhos arbitrários de mensagens, URLs de brokers e valores bearer de sessão ou de conta fora da configuração do SDK. Use a configuração de ingestão de servidor do projeto fornecida pelo LogBrew.

Envelope nativo direto

Use POST /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 um type 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 como telemetry-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
Carregue o valor de ingestão do projeto em 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:
Leia o status HTTP e o corpo. --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 retorna 200 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 retorna 401. Uma chave de outro projeto também retorna 401:
Use uma chave de ingestão do projeto. Não a troque por uma credencial da conta. Uma chave de artefato não pode enviar telemetria. Um envelope que viola uma regra de campo retorna 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:
Não envie um envelope quando não houver eventos. Um envelope com mais de 512 itens 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.
Defina a versão e o ambiente na configuração do SDK. Crie ou continue o contexto de trace em cada operação. Não reutilize um ID de trace em trabalhos sem relação.