Observabilidade em Microserviços: Logs, Métricas e Tracing com Spring Boot (Guia Completo 2026)

Observabilidade em Microserviços: Logs, Métricas e Tracing com Spring Boot (Guia Completo 2026)

Aprenda a implementar observabilidade completa em microserviços com Spring Boot, incluindo logs estruturados, métricas com Prometheus e tracing distribuído com OpenTelemetry e Jaeger.

nexucodeplay04 de maio de 2026
Compartilhar:LinkedInXWhatsAppFacebook

Se você não sabe o que está acontecendo no seu sistema…

você não tem sistema. Você tem sorte.

Observabilidade é o que te salva quando:

  • produção quebra

  • API fica lenta

  • cliente reclama

Vamos montar isso do jeito certo.


1. O que é observabilidade (na prática)

Três pilares:

  • Logs → o que aconteceu

  • Métricas → como está

  • Tracing → por onde passou

Sem isso = cegueira total


2. Logs estruturados (JSON)

Dependência

<dependency>
  <groupId>net.logstash.logback</groupId>
  <artifactId>logstash-logback-encoder</artifactId>
</dependency>

logback-spring.xml

<configuration>
  <appender name="JSON" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
  </appender>

  <root level="INFO">
    <appender-ref ref="JSON"/>
  </root>
</configuration>

Exemplo de log

log.info("User created", Map.of(
  "userId", user.getId(),
  "email", user.getEmail()
));

👉 Agora seu log vira isso:

{
  "message": "User created",
  "userId": 1,
  "email": "teste@email.com"
}

3. Métricas com Prometheus

Dependência

<artifactId>spring-boot-starter-actuator</artifactId>

application.yml

management:
  endpoints:
    web:
      exposure:
        include: "*"
  metrics:
    export:
      prometheus:
        enabled: true

Endpoint

http://localhost:8080/actuator/prometheus

4. Métrica customizada

@Autowired
private MeterRegistry meterRegistry;

public void processOrder() {
    meterRegistry.counter("orders.created").increment();
}

5. Tracing distribuído (OpenTelemetry)

Dependência

<dependency>
  <groupId>io.opentelemetry.instrumentation</groupId>
  <artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>

application.yml

otel:
  exporter:
    otlp:
      endpoint: http://localhost:4317

6. Exemplo com tracing

@GetMapping("/test")
public String test() {
    return "ok";
}

👉 automaticamente gera:

  • traceId

  • spanId


7. Stack completa com Docker

version: '3'

services:

  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"

  jaeger:
    image: jaegertracing/all-in-one
    ports:
      - "16686:16686"

8. Fluxo completo

  • Requisição entra

  • Gateway gera trace

  • Serviço A chama B

  • Kafka envia evento

  • Tudo rastreado


Boas práticas

  • Sempre log estruturado

  • Nunca logar senha/token

  • Métricas por serviço

  • Tracing obrigatório em microserviço


Conclusão

Sem observabilidade: você não escala

Com observabilidade: você controla o sistema

Publicidade
Publicidade

💬 Deixe seu comentário

Deixe um comentário

Comentários passam por moderação para evitar spam e manter a qualidade.

Comentários

Ainda não tem comentários.