package metrics

import (
	"github.com/prometheus/client_golang/prometheus"
	"sigs.k8s.io/controller-runtime/pkg/metrics"
)

const nodedrainerComponent = "nodedrainer"

var (
	UpdateDrainNodeCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Subsystem: nodedrainerComponent,
			Name:      "update_drain_node_total",
			Help:      "Counter of update drain node",
		},
		[]string{"rlt"},
	)
	UpdateRecoverNodeCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Subsystem: nodedrainerComponent,
			Name:      "update_recover_node_total",
			Help:      "Counter of update recover node",
		},
		[]string{"rlt"},
	)
	EvictPodCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Subsystem: nodedrainerComponent,
			Name:      "evict_pod_total",
			Help:      "Counter of evict pod",
		},
		[]string{"rlt"},
	)
)

func init() {
	// Register custom metrics with the global prometheus registry
	metrics.Registry.MustRegister(UpdateDrainNodeCounter)
	metrics.Registry.MustRegister(UpdateRecoverNodeCounter)
	metrics.Registry.MustRegister(EvictPodCounter)
}
