package metrics

import "github.com/prometheus/client_golang/prometheus"

const (
	cronJobSubsystem = "cron_job"
)

var CronJob = cronJobMetrics{
	SyncCount: prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: Namespace,
			Subsystem: cronJobSubsystem,
			Name:      "sync_count_total",
			Help:      "How many times a cron job sync is executed.",
		},
		[]string{"service_name", "job_name", "result"},
	),
	SyncDur: prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Namespace: Namespace,
			Subsystem: cronJobSubsystem,
			Name:      "sync_duration_seconds",
			Help:      "How long it takes to execute a cron job sync.",
		},
		[]string{"service_name", "job_name", "result"},
	),
}

type cronJobMetrics struct {
	SyncCount *prometheus.CounterVec
	SyncDur   *prometheus.SummaryVec
}
