Junior — Middle
De que formas é possível aceder às métricas-chave do sistema?
sobes.tech IA
Resposta da IA
Em Go, para obter métricas-chave do sistema, costuma-se usar o pacote expvar, que permite exportar métricas em formato JSON via HTTP. Também são populares bibliotecas de terceiros, como o cliente Prometheus para Go, que coleta e fornece métricas num formato conveniente para monitorização.
Exemplo usando expvar:
import (
"expvar"
"net/http"
)
var requests = expvar.NewInt("requests")
func handler(w http.ResponseWriter, r *http.Request) {
requests.Add(1)
w.Write([]byte("Hello, metrics!"))
}
func main() {
http.HandleFunc("/", handler)
// As métricas estarão disponíveis em /debug/vars
http.ListenAndServe(":8080", nil)
}
Também é possível usar chamadas de sistema padrão e bibliotecas para obter informações sobre memória, carga de CPU e outras métricas, por exemplo, através do pacote runtime.