package main

import (
	"io"

	"github.com/ddliu/go-httpclient"
)

func get(metricsType MetricsInterface) ([]byte, error) {
	url := metricsType.source()
	resp, err := httpclient.Do("GET", url, nil, nil)
	if err == nil {
		return io.ReadAll(resp.Body)
	}
	return nil, err
}

type Component struct {
	Name  string
	Index int
	MI    MetricsInterface
}

type MetricsInterface interface {
	source() string
	replace(data []byte, index int) string
}

type PDMetrics struct {
}

func (t PDMetrics) source() string {
	return "http://basic-pd-0.basic-pd-peer.observability.svc:2379/metrics"
}

func (t PDMetrics) replace(data []byte, index int) string {
	return string(data)
}

type TiDBMetrics struct {
}

func (t TiDBMetrics) source() string {
	return "http://basic-tidb-0.basic-tidb-peer.observability.svc:10080/metrics"
}

func (t TiDBMetrics) replace(data []byte, index int) string {
	return string(data)
}

type TiKVMetrics struct {
}

func (t TiKVMetrics) source() string {
	return "http://basic-tikv-0.basic-tikv-peer.observability.svc:20180/metrics"
}

func (t TiKVMetrics) replace(data []byte, index int) string {
	return string(data)
}

//
//type TiFlashMetrics struct {
//}
//
//func (t TiFlashMetrics) source() string {
//	return "http://12:2379/metrics"
//}
//
//func (t TiFlashMetrics) replace(data []byte, index int) string {
//	return string(data)
//}
