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