Junior — Middle
Kaip galima pasiekti pagrindinius sistemos rodiklius?
sobes.tech AI
Atsakymas iš AI
Go kalboje dažnai naudojamas expvar paketas, kuris leidžia eksportuoti pagrindines sistemos metrikas JSON formatu per HTTP. Taip pat populiarios trečiųjų šalių bibliotekos, pavyzdžiui, Prometheus klientas Go, kuris renka ir teikia metrikas patogiu monitoringo formatu.
Pavyzdys naudojant 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)
// Metrikos bus prieinamos adresu /debug/vars
http.ListenAndServe(":8080", nil)
}
Taip pat galima naudoti standartinius sisteminius iškvietimus ir bibliotekas, kad gauti informacijos apie atmintį, CPU apkrovą ir kitas metrikas, pvz., per runtime paketą.