Sobes.tech
Senior

No currículo, menciona que implementou tracing — pode contar-me mais detalhes?

sobes.tech IA

Resposta da IA

A implementação do tracing no projeto significou integrar um sistema de tracing distribuído para monitorização e análise do desempenho dos microserviços. Usei OpenTelemetry para recolher e transmitir dados sobre atrasos, erros e caminhos de requisições entre serviços. Isso permitiu identificar gargalos no sistema, otimizar o tempo de resposta e melhorar a deteção de problemas.

Exemplo: numa aplicação em Go, adicionei um middleware que cria spans para cada requisição HTTP, transmitindo o contexto ao longo da cadeia de chamadas:

import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/trace"
    "net/http"
)

func tracingMiddleware(next http.Handler) http.Handler {
    tracer := otel.Tracer("my-service")
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        ctx, span := tracer.Start(r.Context(), r.URL.Path)
        defer span.End()
        next.ServeHTTP(w, r.WithContext(ctx))
    })
}

Desta forma, conseguimos transparência no funcionamento dos serviços e a capacidade de responder rapidamente a incidentes.