2025-10-15 10:43:58 -04:00

57 lines
1.4 KiB
Go

// metrics/metrics.go
package metrics
import "github.com/prometheus/client_golang/prometheus"
var (
// Cuántas veces se ejecutó exitosamente cada job
CronSuccess = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "cron_job_success_total",
Help: "Total de ejecuciones exitosas por cron job",
},
[]string{"job"},
)
// Cuántas veces falló
CronError = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "cron_job_error_total",
Help: "Total de errores por cron job",
},
[]string{"job"},
)
// Tiempo de ejecución de cada job
CronDuration = prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Name: "cron_job_duration_seconds",
Help: "Duración de ejecución por cron job",
Buckets: prometheus.DefBuckets,
},
[]string{"job"},
)
// Última ejecución exitosa (timestamp Unix)
CronLastSuccess = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "cron_job_last_success_timestamp",
Help: "Timestamp de la última ejecución exitosa por cron job",
},
[]string{"job"},
)
// Último error (timestamp Unix)
CronLastError = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "cron_job_last_error_timestamp",
Help: "Timestamp del último error por cron job",
},
[]string{"job"},
)
)
func Register() {
prometheus.MustRegister(CronSuccess, CronError, CronDuration, CronLastSuccess, CronLastError)
}