forked from robfig/cron
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or requestobservabilityMetrics and monitoringMetrics and monitoring
Description
Description
Built-in metrics collection for job execution would simplify observability integration.
Current Approach
Users must implement metrics via hooks:
cron.WithObservabilityHooks(cron.ObservabilityHooks{
OnJobComplete: func(id EntryID, job Job, scheduled time.Time, dur time.Duration, panic any) {
myMetrics.JobDuration.Observe(dur.Seconds())
if panic != nil {
myMetrics.JobErrors.Inc()
}
},
})Proposed Enhancement
// Built-in metrics collection
c := cron.New(
cron.WithMetrics(&cron.MetricsConfig{
Namespace: "myapp",
Subsystem: "cron",
}),
)
// Exposes:
// - cron_jobs_total{job_id, status}
// - cron_job_duration_seconds{job_id}
// - cron_job_last_execution_timestamp{job_id}
// - cron_scheduler_entries_total
// - cron_scheduler_running_jobs
// Prometheus integration
cron.WithPrometheusMetrics(registry)
// OpenTelemetry integration
cron.WithOTelMetrics(meterProvider)Severity
🟡 Medium - Production monitoring requirement
Found By
Pre-1.0 release code review with Zen/Gemini
CybotTM
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestobservabilityMetrics and monitoringMetrics and monitoring