Instrumentação Java com Elven Observability
Guia completo para adicionar traces, métricas e correlação de logs às aplicações Java usando a distribuição OpenTelemetry da Elven.
Sumário
Visão geral
Componente
O que faz
Pré-requisitos
Baseline técnico
Item
Versão
Protocolos suportados
Protocolo
Valor
Uso recomendado
Caminho recomendado
Prioridade
Caminho
Quando usar
Quick Start — Docker + ENV (zero-code recomendado)
1. Adicione o Java Agent no Dockerfile
2. Configure as variáveis no runtime
3. Configure logs quando precisar enviar para Loki
4. Valide o startup
Pacotes disponíveis
Maven com BOM
API manual
Spring Boot Starter
SDK autoconfigure
Gradle
Quick Start — Java Agent embedded sem Docker
1. Baixe o agent embedded
2. Configure as variáveis de ambiente
3. Inicie a aplicação com JAVA_TOOL_OPTIONS
JAVA_TOOL_OPTIONSQuick Start — Java Agent oficial com extensão Elven
1. Baixe o Java Agent oficial
2. Baixe a extensão Elven
3. Configure agent + extensão
Quick Start — Spring Boot Starter
1. Adicione o BOM e o starter
2. Configure o ambiente
3. Injete ObservabilityHandle quando precisar de spans ou métricas manuais
ObservabilityHandle quando precisar de spans ou métricas manuais4. Configuração Spring opcional
Quick Start — Inicialização manual
1. Adicione a dependência
2. Inicialize a partir das variáveis de ambiente
3. Ou inicialize com builder explícito
Precedência de configuração
Configuração por variáveis de ambiente
Identidade do serviço
Variável
Descrição
Default
Export OTLP
Variável
Descrição
Default
Sinais
Variável
Descrição
Default
Sampling e propagação
Variável
Descrição
Default
Privacy Elven
Variável
Descrição
Default
Java Agent
Variável
Descrição
Deploy com Docker — variações
Dockerfile — app com JAR pronto
Dockerfile multi-stage com Maven
Dockerfile usando Maven para copiar o agent
docker-compose.yml
Logs e correlação com Loki
Dependências de logs
Variáveis de logs
Correlação manual com MDC
Pattern Logback local
Como a correlação aparece
Traces manuais, erros e atributos semânticos
Span simples
Registrar exceções
Usuário final com privacidade
Quando usar atributos crus
Métricas manuais
Counter
Histogram
UpDownCounter
Gauge
Cuidados de cardinalidade
Instrumentações automáticas
Categoria
Exemplos
Habilitar/desabilitar instrumentações
SQL statements
Configuração por arquivo
Usando variável
Usando builder
Exemplo .properties
.propertiesExemplo .yaml
.yamlPrivacidade e dados sensíveis
Redactado por padrão
Identidade de usuário
Permitir atributo cru
Headers
Boas práticas para SaaS multi-tenant
Identidade do serviço
Tenant routing
Atributos de tenant
Logs
Sampling
Validação ponta a ponta
1. Verifique o log de startup
2. Gere tráfego
3. Verifique traces
4. Verifique métricas
5. Verifique logs correlacionados
6. Valide redaction
Troubleshooting
Traces não aparecem
Métricas não aparecem
Logs não aparecem no Loki
Logs aparecem sem trace_id
trace_idJDBC não gera spans
db.statement não aparece
db.statement não apareceErro de endpoint OTLP inválido
Erro em headers OTLP
Sampling inválido
Aplicação não inicia com agent
Duplicate SDK setup
FAQ
Preciso alterar código para usar a lib?
A lib envia logs para Loki?
Posso usar só a API manual sem Java Agent?
Posso usar Java Agent e Spring Boot Starter juntos?
Qual endpoint devo usar?
Como vejo SQL statements?
Como correlaciono Loki e Tempo?
Qual versão devo usar?
Checklist de deploy
Last updated
Was this helpful?

