Junior — Middle
Op welke manieren kan men toegang krijgen tot de kernmetriek van het systeem?
sobes.tech AI
Antwoord van AI
In Go wordt vaak het expvar-pakket gebruikt om belangrijke systeemmetriek te verkrijgen, dat het mogelijk maakt om metriek te exporteren in JSON-formaat via HTTP. Ook populaire zijn externe bibliotheken, zoals de Prometheus-client voor Go, die metriek verzamelen en in een monitoring-vriendelijk formaat aanbieden.
Voorbeeld met 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)
// Metriek zijn beschikbaar op /debug/vars
http.ListenAndServe(":8080", nil)
}
Het is ook mogelijk om standaard systeemoproepen en bibliotheken te gebruiken om informatie over geheugen, CPU-belasting en andere metriek te verkrijgen, bijvoorbeeld via het runtime-pakket.