package metrics

import (
	"github.com/go-logr/logr"
	"github.com/prometheus/client_golang/prometheus"
	"github.com/tidbcloud/infra-provider/regional-server/pkg/metrics/collectors"
	"sigs.k8s.io/controller-runtime/pkg/client"
	ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
)

// MustRegister provides a global helper function that registers collectors into a prometheus registry,
// which is backed by the controller-runtime's metrics registry.
func MustRegister(cs ...prometheus.Collector) {
	ctrlmetrics.Registry.MustRegister(cs...)
}

func SetupCollectors(cli client.Client, logger logr.Logger) {
	MustRegister(collectors.GetAllCollectors(cli, logger)...)
	MustRegister(collectors.NodePoolGCStatus)
}
