Sobes.tech
Junior — Middle

Με ποιους τρόπους μπορεί κανείς να αποκτήσει πρόσβαση στα βασικά metrics του συστήματος;

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.