Sobes.tech
Junior — Middle

De que formas é possível aceder às métricas-chave do sistema?

sobes.tech IA

Resposta da IA

Em Go, para obter métricas-chave do sistema, costuma-se usar o pacote expvar, que permite exportar métricas em formato JSON via HTTP. Também são populares bibliotecas de terceiros, como o cliente Prometheus para Go, que coleta e fornece métricas num formato conveniente para monitorização.

Exemplo usando 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)
    // As métricas estarão disponíveis em /debug/vars
    http.ListenAndServe(":8080", nil)
}

Também é possível usar chamadas de sistema padrão e bibliotecas para obter informações sobre memória, carga de CPU e outras métricas, por exemplo, através do pacote runtime.