package metrics

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

const nodeRebalanceComponent = "noderebalance"

var (
	PreventCAScaleUpGauge = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Subsystem: nodeRebalanceComponent,
			Name:      "prevent_ca_scale_up",
			Help:      "Gauge of prevent ca scale up",
		},
		[]string{"node_group", "node_zone"},
	)
	RebalanceEvictNodeCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Subsystem: nodeRebalanceComponent,
			Name:      "evict_node_total",
			Help:      "Counter of rebalance evict node",
		},
		[]string{"node", "node_group", "node_zone"},
	)
)

func init() {
	// Register custom metrics with the global prometheus registry
	metrics.Registry.MustRegister(PreventCAScaleUpGauge)
	metrics.Registry.MustRegister(RebalanceEvictNodeCounter)
}
