Senior
¿Qué métricas? ¿Con qué herramientas vamos a registrar estas métricas?
sobes.tech AI
Respuesta de la IA
Las métricas son indicadores cuantitativos que permiten monitorear el estado y el rendimiento de una aplicación o sistema. En el contexto de Golang y el desarrollo de servicios, generalmente se recopilan métricas como tiempo de respuesta, número de solicitudes, errores, uso de memoria y CPU.
Para recopilar y exportar métricas, a menudo se utilizan herramientas y bibliotecas, por ejemplo:
- Prometheus — sistema de monitoreo y recopilación de métricas con soporte para modelo pull.
- OpenTelemetry — estándar para la recopilación de telemetría (métricas, logs, trazas).
- Bibliotecas cliente de Go — por ejemplo,
prometheus/client_golangpara integración con Prometheus.
Ejemplo de uso de Prometheus en 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 solicitudes 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("¡Hola, métricas!"))
}
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
De esta manera, las métricas ayudan a monitorear el estado de la aplicación y a reaccionar oportunamente ante problemas.