package metrics

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

const (
	k8sUpgradeSubsystem = "k8s_upgrade"
)

var K8sUpgrade = k8sUpgradeMetrics{
	MaintenanceWindowNotCreated: prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Namespace: Namespace,
			Subsystem: k8sUpgradeSubsystem,
			Name:      "maintenance_window_not_created",
			Help:      "Whether a k8s upgrade task is running but the maintenance window has not been created.",
		},
		[]string{"task_id", "cluster_name", "cloud_provider", "region"},
	),
	K8sClusterUONotStart: prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Namespace: Namespace,
			Subsystem: k8sUpgradeSubsystem,
			Name:      "k8s_cluster_upgrade_operation_not_start",
			Help:      "Whether a k8s upgrade maintenance window has started but the UpgradeOperation has not started running.",
		},
		[]string{"task_id", "cluster_name", "cloud_provider", "region"},
	),
}

type k8sUpgradeMetrics struct {
	MaintenanceWindowNotCreated *prometheus.GaugeVec
	K8sClusterUONotStart        *prometheus.GaugeVec
}
