Sobes.tech
Junior — Middle

De que forma controlas e monitorizas o estado do serviço ou aplicação durante a sua execução?

sobes.tech IA

Resposta da IA

Para controlar e acompanhar o estado de um serviço ou aplicação em Go, geralmente utilizam-se várias abordagens:

  1. Registo — registar eventos importantes e erros em ficheiros de log ou sistemas externos (por exemplo, ELK, Graylog).
  2. Métricas — recolher estatísticas (uso de CPU, memória, número de pedidos, erros) usando bibliotecas, por exemplo, o cliente Prometheus.
  3. Tracing — rastrear cadeias de chamadas e atrasos usando OpenTelemetry ou Jaeger.
  4. Verificações de Saúde — endpoints que retornam o estado do serviço (por exemplo, /healthz) para que os sistemas de orquestração (Kubernetes) possam verificar a operacionalidade.

Exemplo de uma verificação de saúde simples em Go:

http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    w.Write([]byte("OK"))
})

log.Fatal(http.ListenAndServe(":8080", nil))

Dessa forma, combinando logs, métricas e verificações de saúde, é possível controlar eficazmente o estado da aplicação durante a sua execução.