Files
zot/pkg/extensions/extension_metrics.go
T
Andrei Aaron da426850e7 chore: update golangci-lint and fix all issues (#3575)
* chore: Update golangci-lint

Signed-off-by: Lars Francke <git@lars-francke.de>

* chore: fix all golangci-lint issues

- Remove deprecated `// +build` tags
- Fix godoclint, modernize, wsl_v5, govet, lll, gci, noctx issues
- Update linter configuration
- Modernize code to use Go 1.22+ features (for range N, slices.Contains, etc.)
- Update make check lint the privileged tests

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>

---------

Signed-off-by: Lars Francke <git@lars-francke.de>
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
Co-authored-by: Lars Francke <git@lars-francke.de>
2025-11-22 23:36:48 +02:00

41 lines
1.2 KiB
Go

//go:build metrics
package extensions
import (
"github.com/gorilla/mux"
"github.com/prometheus/client_golang/prometheus/promhttp"
"zotregistry.dev/zot/v2/pkg/api/config"
"zotregistry.dev/zot/v2/pkg/extensions/monitoring"
"zotregistry.dev/zot/v2/pkg/log"
)
func EnableMetricsExtension(config *config.Config, log log.Logger, rootDir string) {
// Get extensions config safely
extensionsConfig := config.CopyExtensionsConfig()
if extensionsConfig.IsMetricsEnabled() {
log.Info().Msg("metrics extension enabled")
} else {
log.Info().Msg("metrics config not provided, skipping metrics config update")
}
}
func SetupMetricsRoutes(config *config.Config, router *mux.Router,
authnFunc, authzFunc mux.MiddlewareFunc, log log.Logger, metrics monitoring.MetricServer,
) {
log.Info().Msg("setting up metrics routes")
// Get extensions config safely
extensionsConfig := config.CopyExtensionsConfig()
if extensionsConfig.IsMetricsEnabled() {
prometheusConfig := extensionsConfig.GetMetricsPrometheusConfig()
if prometheusConfig != nil {
extRouter := router.PathPrefix(prometheusConfig.Path).Subrouter()
extRouter.Use(authnFunc)
extRouter.Use(authzFunc)
extRouter.Methods("GET").Handler(promhttp.Handler())
}
}
}