package metrics
import (
"clyde/pkg/mux"
"github.com/prometheus/client_golang/prometheus"
)
const namespace = "clyde"
var (
DefaultRegisterer = prometheus.DefaultRegisterer
DefaultGatherer = prometheus.DefaultGatherer
)
var (
MirrorRequestsTotal = prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: namespace,
Name: "mirror_requests_total",
Help: "Total number of mirror requests.",
}, []string{"registry", "cache"})
ResolveDurHistogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{
Namespace: namespace,
Name: "resolve_duration_seconds",
Help: "The duration for router to resolve a peer.",
}, []string{"router"})
AdvertisedImages = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Name: "advertised_images",
Help: "Number of images advertised to be available.",
}, []string{"registry"})
AdvertisedImageTags = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Name: "advertised_image_tags",
Help: "Number of image tags advertised to be available.",
}, []string{"registry"})
AdvertisedImageDigests = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Name: "advertised_image_digests",
Help: "Number of image digests advertised to be available.",
}, []string{"registry"})
AdvertisedKeys = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Name: "advertised_keys",
Help: "Number of keys advertised to be available.",
}, []string{"registry"})
AdvertisedPipPackage = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Name: "advertised_pip_packages",
Help: "Number of pip packages advertised to be available.",
}, []string{"source"})
AdvertisedHFModel = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Name: "advertised_hf_models",
Help: "Number of Hugging Face models advertised to be available.",
}, []string{"source"})
)
func Register() {
DefaultRegisterer.MustRegister(MirrorRequestsTotal)
DefaultRegisterer.MustRegister(ResolveDurHistogram)
DefaultRegisterer.MustRegister(AdvertisedImages)
DefaultRegisterer.MustRegister(AdvertisedImageTags)
DefaultRegisterer.MustRegister(AdvertisedImageDigests)
DefaultRegisterer.MustRegister(AdvertisedKeys)
DefaultRegisterer.MustRegister(AdvertisedPipPackage)
DefaultRegisterer.MustRegister(AdvertisedHFModel)
mux.RegisterMetrics(DefaultRegisterer)
}