package metrics

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

var (
	RequestCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "request_count",
			Help: "Counter of webhook request.",
		}, []string{"path", "kind", "operation"})

	RequestErrorCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "request_error_count",
			Help: "Counter of webhook request handling error.",
		}, []string{"path", "kind", "operation"})

	RequestDuration = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "request_duration",
			Help:    "Bucketed histogram of processing time (s) of handled webhook requests.",
			Buckets: prometheus.ExponentialBuckets(0.0005, 2, 13),
		}, []string{"path", "kind", "operation"})

	InformerCacheMissCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "informer_cache_miss_count",
			Help: "Counter of kubernetes informer cache miss",
		}, []string{"kind"}) // kind of kubernetes reource
)
