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:
- Registo — registar eventos importantes e erros em ficheiros de log ou sistemas externos (por exemplo, ELK, Graylog).
- Métricas — recolher estatísticas (uso de CPU, memória, número de pedidos, erros) usando bibliotecas, por exemplo, o cliente Prometheus.
- Tracing — rastrear cadeias de chamadas e atrasos usando OpenTelemetry ou Jaeger.
- 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.