package collectors

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

func GetAllCollectors(provider string, cli client.Client, logger logr.Logger) []prometheus.Collector {
	collectors := []prometheus.Collector{
		&appBox{cli, logger},
		&bucket{cli, logger},
		&dataplane{cli, logger},
		&internet{cli, logger},
		&loadBalancer{cli, logger},
		&vpc{cli, logger},
		&privateLinkEndpoint{cli, logger},
		&privateLinkService{cli, logger},
	}
	switch provider {
	case consts.ProviderTypeEKS, consts.ProviderTypeAWS:
		collectors = append(collectors, &eks{cli, logger})
	}
	return collectors
}
