package register

import (
	"github.com/prometheus/client_golang/prometheus"
	backup_collector "github.com/tidbcloud/dataflow-service/app/metrics/backup/collector"
	backup_metric "github.com/tidbcloud/dataflow-service/app/metrics/backup/metric"
	backup_export_collector "github.com/tidbcloud/dataflow-service/app/metrics/backup_export/collector"
	backup_export_metric "github.com/tidbcloud/dataflow-service/app/metrics/backup_export/metric"
	changefeed_metric "github.com/tidbcloud/dataflow-service/app/metrics/changefeed/metric"
	compact_backup_collector "github.com/tidbcloud/dataflow-service/app/metrics/compact_backup/collector"
	compact_backup_metric "github.com/tidbcloud/dataflow-service/app/metrics/compact_backup/metric"
	crrf_collector "github.com/tidbcloud/dataflow-service/app/metrics/crrf/collector"
	crrf_metrics "github.com/tidbcloud/dataflow-service/app/metrics/crrf/metric"
	restore_collector "github.com/tidbcloud/dataflow-service/app/metrics/restore/collector"
	restore_metric "github.com/tidbcloud/dataflow-service/app/metrics/restore/metric"
)

func RegisterMetrics() {
	prometheus.MustRegister(backup_metric.BackupStatus)
	prometheus.MustRegister(backup_collector.NewBackupMetricsCollector())

	prometheus.MustRegister(backup_export_metric.BackupExportStatus)
	prometheus.MustRegister(backup_export_collector.NewBackupExportMetricsCollector())

	prometheus.MustRegister(restore_metric.RestoreStatus)
	prometheus.MustRegister(restore_collector.NewRestoreMetricsCollector())

	prometheus.MustRegister(changefeed_metric.ChangefeedStatus)
	prometheus.MustRegister(compact_backup_metric.CompactBackupStatus)
	prometheus.MustRegister(compact_backup_collector.NewCompactBackupMetricsCollector())

	prometheus.MustRegister(crrf_metrics.Status)
	prometheus.MustRegister(crrf_collector.NewMetricsCollector())
}
