Junior — Middle
Какви начини има за достъп до ключовите метрики на системата?
sobes.tech AI
Отговор от AI
В Go често се използва пакетът expvar за получаване на ключови системни метрики, който позволява експортиране на метрики във формат JSON чрез HTTP. Популярни са и външни библиотеки, например клиентът Prometheus за Go, който събира и предоставя метрики в удобен за мониторинг формат.
Пример с използване на 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)
// Метриките ще са достъпни на /debug/vars
http.ListenAndServe(":8080", nil)
}
Също така може да се използват стандартни системни извиквания и библиотеки за получаване на информация за памет, натоварване на CPU и други метрики, например чрез пакета runtime.