package metric

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

var (
	MetricNamespace = "serverless"

	StatusOK  = "success"
	StatusErr = "failed"

	FacadeRequestedCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: MetricNamespace,
			Name:      "facade_requested_total",
			Help:      "Total number of facade(third service) requested",
		},
		[]string{"facade", "method", "status"},
	)

	FacadeRequestedHistogram = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Namespace: MetricNamespace,
			Name:      "facade_request_handling_seconds",
			Help:      "Histogram of response latency (seconds) of request handled by facade.",
			Buckets:   prometheus.DefBuckets,
		},
		[]string{"facade", "method", "status"},
	)
)

func init() {
	prometheus.MustRegister(FacadeRequestedCounter)
	prometheus.MustRegister(FacadeRequestedHistogram)
}
