Sobes.tech
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.