Quarkus and Datadog. Observabilidade Máxima!

Table of contents
- Itens apresentados:
- 1. Introdução à Observabilidade
- 2. Três Pilares da Observabilidade: Logs, Métricas e Traces
- 3. Desafios Comuns em Ambientes Distribuídos e Microsserviços
- 4. Por que Quarkus?
- 5. Por que Datadog para Observabilidade?
- 6. Integração Quarkus + Datadog
- 7. Boas Práticas e Casos de Uso
- 8. Conclusão
- Prática:
- Checklist do pontos mais importantes:
- Isto feito vc deve começar a visualizar seus traces no Datadog!

Itens apresentados:
1. Introdução à Observabilidade
O que é Observabilidade?
Capacidade de inferir o estado interno de um sistema complexo com base em sua saída externa (logs, métricas, traces).Por que é essencial hoje?
Em ambientes distribuídos, com microsserviços, containers e nuvem, a visibilidade é crucial para detectar falhas rapidamente, reduzir o tempo de resolução (MTTR) e garantir a confiabilidade.Evolução
De monitoramento passivo (apenas métricas de sistema) para observabilidade ativa (entendimento profundo da aplicação).
2. Três Pilares da Observabilidade: Logs, Métricas e Traces
Logs
Registros estruturados e cronológicos de eventos, úteis para auditoria e troubleshooting.Métricas
Valores numéricos agregados ao longo do tempo (ex: requisições por segundo, tempo de resposta).Traces
Rastreiam o caminho de uma requisição ao longo dos serviços, útil para encontrar gargalos e entender o fluxo distribuído.
“Os três pilares juntos respondem: O que aconteceu? Quando? Onde? E por quê?”
3. Desafios Comuns em Ambientes Distribuídos e Microsserviços
Complexidade aumentada: múltiplos serviços, múltiplos times
Dificuldade de rastrear falhas ponta a ponta
Logs fragmentados e métricas isoladas
Alta cardinalidade de labels/tags
Corrupção de contexto entre chamadas assíncronas
Ferramentas desconectadas que não se comunicam bem
4. Por que Quarkus?
Startup time rápido
Ideal para escalabilidade instantânea e testes rápidos com menos overhead.Baixo uso de memória
Excelente para ambientes serverless e containers com poucos recursos.Suporte nativo a Micrometer e OpenTelemetry
Coleta e exporta métricas e traces sem necessidade de instrumentação pesada.Configuração simplificada
application.properties
centraliza e simplifica ajustes.Extensões para observabilidade
Prometheus, Jaeger, Zipkin, Datadog — basta adicionar a dependência.Exposição automática de métricas
/q/metrics
com MicroProfile Metrics.Spans automáticos + propagação de contexto
Observabilidade real sem esforço adicional.Ferramentas de produtividade
Hot reload, Dev UI, testes em tempo real: ciclo de feedback ágil.
5. Por que Datadog para Observabilidade?
Plataforma unificada
Centraliza logs, métricas, traces, dashboards e alertas em um único lugar.Auto discovery de serviços e dependências
APM detecta automaticamente os serviços e suas interações.Mapas de serviço e análise de dependência
Visualização clara da arquitetura distribuída.Correlação em um clique
Clique no trace → veja logs + métricas daquele exato momento.Agentes leves e SDKs prontos
Fácil integração em qualquer stack, incluindo Java/Quarkus.Integração nativa com nuvem e containers
AWS, GCP, Azure, Kubernetes, Docker → plug and play.Dashboards customizáveis
Cada squad visualiza apenas o que importa para si.Análise de performance
Endpoints mais lentos, gargalos, filas → fácil de identificar.SLOs e Error Budgets embutidos
Suporte nativo a práticas de SRE.Detecção de anomalias com IA
Machine Learning detecta desvios sem precisar de regras manuais.
6. Integração Quarkus + Datadog
Micrometer → Datadog
Exportação simples de métricas com dependência e configuração mínima.Uso de labels e tags
Serviços, versões, ambientes → observabilidade granular.MDC e contexto distribuído nos logs
Trace ID, User ID, span → logs ricos e rastreáveis.Logs estruturados (JSON)
Envio via Datadog Agent com parsing automático.Traces automáticos com OpenTelemetry
Sem necessidade de código adicional para rastrear requisições.Observabilidade ponta a ponta
Visibilidade completa da aplicação ao infra, com baixo esforço de instrumentação.
7. Boas Práticas e Casos de Uso
Definição de SLOs reais
Baseados em dados concretos de latência e disponibilidade.Alertas inteligentes
Métricas do Quarkus → thresholds dinâmicos → menor ruído.Dashboards por squad ou contexto
Ex: latência de endpoints mantidos por determinada equipe.Logs orientados a contexto
Inclua trace ID, span ID, user ID → logs com valor real.Análise de regressão no CI/CD
Compare performance por commit/deploy com o Datadog.Debug em produção sem dor
Trace detalhado + logs correlacionados = resolução rápida.
8. Conclusão
Ganhos claros:
Menor MTTR
Melhor performance
Facilidade de debugging
Transparência entre squads
Quarkus + Datadog = match perfeito para DevOps e SRE
Produtividade de um lado
Inteligência operacional do outro
Observabilidade não é opcional
- “Não dá pra gerenciar o que não se pode observar”
Prática:
Projetos utilizados:
Github:
luizpais/encurtator: Encurtador de Urls Simples ou de Campanhas
luizpais/campainer:CRUD de Campanhas
Checklist do pontos mais importantes:
Criar uma conta trial no site do Datadog.
Configurar a geração de logs no padrão json, incluindo a dependência no arquivo pom.xml:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-logging-json</artifactId> </dependency>
Configurar o padrão de escrita e rotação do log no arquivo application.properties
quarkus.log.file.enable=true quarkus.log.file.path=encurtator.log quarkus.log.file.format=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%e%n quarkus.log.file.rotation.max-file-size=10M quarkus.log.file.rotation.max-backup-index=5 quarkus.log.level=INFO
Subir as aplicações com as variáveis de ambiente DD_ENV, DD_VERSION, DD_SERVICE, DD_LOGS_INJECTION: true.
encurtador:
- DD_ENV=dev, DD_VERSION=1.0.0, DD_SERVICE=encurtador, DD_LOGS_INJECTION= true.
campainer:
- DD_ENV=dev, DD_VERSION=0.1.0, DD_SERVICE=campainer, DD_LOGS_INJECTION= true.
Baixar o arquivo jar de trace java: https://github.com/DataDog/dd-trace-java/releases/download/v1.52.0/dd-java-agent.jar
- Subir seu serviço java assim:
java -javaagent=/path/dd-java-agent.jar -jar “application.jar” onde path deve ser o caminho do jar do agente.
- Subir seu serviço java assim:
Isto feito vc deve começar a visualizar seus traces no Datadog!
##
Subscribe to my newsletter
Read articles from Luiz Pais directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Luiz Pais
Luiz Pais
I work in IT for over 30 years. I love what I do and greatly enjoy interacting with other professionals, learning, helping, and making our field more accessible. I'm a proud nerd. Currently, I work with Java and its ecosystem. I have experience with the .Net platform, on which I worked for over 13 years.