package slprober

import "github.com/prometheus/client_golang/prometheus"

// ProbeClusterCounter is a counter metric that counts the number of service level probe operations
var ProbeClusterCounter = prometheus.NewCounterVec(
	prometheus.CounterOpts{
		Namespace: "reporter",
		Subsystem: "service_level",
		Name:      "probe_cluster_total",
		Help:      "Service level probe operations count for each cluster",
	}, []string{"status", "ns", "cluster_id"})

// SendMessageFailedTotal is a counter metric that counts the number of sending message to Firehose failed
var SendMessageFailedTotal = prometheus.NewCounterVec(
	prometheus.CounterOpts{
		Namespace: "reporter",
		Subsystem: "service_level",
		Name:      "send_message_failed_total",
		Help:      "Count of sending message to Firehose failed",
	}, []string{})

// RegisterMetric registers metrics with the Prometheus registry
func RegisterMetric() *prometheus.Registry {
	reg := prometheus.NewRegistry()
	reg.MustRegister(ProbeClusterCounter)
	prometheus.MustRegister(ProbeClusterCounter)
	prometheus.MustRegister(SendMessageFailedTotal)
	return reg
}
