Junior — Middle
W jaki sposób można uzyskać dostęp do kluczowych metryk systemu?
sobes.tech AI
Odpowiedź od AI
W Go często używa się pakietu expvar do uzyskiwania kluczowych metryk systemowych, który pozwala na eksportowanie metryk w formacie JSON przez HTTP. Popularne są również biblioteki zewnętrzne, np. klient Prometheus dla Go, który zbiera i udostępnia metryki w formacie przyjaznym dla monitorowania.
Przykład z użyciem 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)
// Metryki będą dostępne pod /debug/vars
http.ListenAndServe(":8080", nil)
}
Można także korzystać z wywołań systemowych i bibliotek standardowych do pobierania informacji o pamięci, obciążeniu CPU i innych metrykach, np. przez pakiet runtime.