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