Senior
Que métricas? Com que ferramentas vamos a registrar essas métricas?
sobes.tech IA
Resposta da IA
As métricas são indicadores quantitativos que permitem monitorizar o estado e o desempenho de uma aplicação ou sistema. No contexto do Golang e do desenvolvimento de serviços, geralmente recolhem-se métricas como tempo de resposta, número de pedidos, erros, uso de memória e CPU.
Para recolher e exportar métricas, frequentemente utilizam-se ferramentas e bibliotecas, por exemplo:
- Prometheus — sistema de monitorização e recolha de métricas com suporte ao modelo pull.
- OpenTelemetry — padrão para recolha de telemetria (métricas, logs, rastreamentos).
- Bibliotecas cliente de Go — por exemplo,
prometheus/client_golangpara integração com Prometheus.
Exemplo de uso do Prometheus em Go:
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"net/http"
)
var (
requestCount = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "http_requests_total",
Help: "Número total de pedidos HTTP",
},
[]string{"path"},
)
)
func init() {
prometheus.MustRegister(requestCount)
}
func handler(w http.ResponseWriter, r *http.Request) {
requestCount.WithLabelValues(r.URL.Path).Inc()
w.Write([]byte("Olá, métricas!"))
}
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
Desta forma, as métricas ajudam a monitorizar o estado da aplicação e a reagir atempadamente a problemas.