57 lines
1.4 KiB
Go
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)
|
|
}
|