package collectors

import (
	"time"

	"github.com/prometheus/client_golang/prometheus"
)

var Uptime = prometheus.NewDesc(
	prometheus.BuildFQName("ticdc", "server", "uptime"),
	"ticdc service server Uptime",
	[]string{},
	nil)

type UptimeCollector struct {
	readyTime int64
}

func NewUptimeCollector(readyTime int64) *UptimeCollector {
	return &UptimeCollector{readyTime: readyTime}
}

func (c *UptimeCollector) Describe(ch chan<- *prometheus.Desc) {
	ch <- Uptime
}

func (c *UptimeCollector) Collect(ch chan<- prometheus.Metric) {
	ch <- prometheus.MustNewConstMetric(Uptime, prometheus.GaugeValue, float64(time.Now().Unix()-c.readyTime))
}
