mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 12:58:02 +08:00
refactor: Review metrics endpoints (#1770)
Signed-off-by: Alexei Dodon <adodon@cisco.com>
This commit is contained in:
@@ -8,12 +8,12 @@ import (
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
|
||||
"zotregistry.io/zot/pkg/api/config"
|
||||
"zotregistry.io/zot/pkg/extensions/monitoring"
|
||||
"zotregistry.io/zot/pkg/log"
|
||||
)
|
||||
|
||||
func EnableMetricsExtension(config *config.Config, log log.Logger, rootDir string) {
|
||||
if config.Extensions.Metrics != nil &&
|
||||
*config.Extensions.Metrics.Enable &&
|
||||
if config.IsMetricsEnabled() &&
|
||||
config.Extensions.Metrics.Prometheus != nil {
|
||||
if config.Extensions.Metrics.Prometheus.Path == "" {
|
||||
config.Extensions.Metrics.Prometheus.Path = "/metrics"
|
||||
@@ -26,11 +26,11 @@ func EnableMetricsExtension(config *config.Config, log log.Logger, rootDir strin
|
||||
}
|
||||
|
||||
func SetupMetricsRoutes(config *config.Config, router *mux.Router,
|
||||
authFunc mux.MiddlewareFunc, log log.Logger,
|
||||
authFunc mux.MiddlewareFunc, log log.Logger, metrics monitoring.MetricServer,
|
||||
) {
|
||||
log.Info().Msg("setting up metrics routes")
|
||||
|
||||
if config.Extensions.Metrics != nil && *config.Extensions.Metrics.Enable {
|
||||
if config.IsMetricsEnabled() {
|
||||
extRouter := router.PathPrefix(config.Extensions.Metrics.Prometheus.Path).Subrouter()
|
||||
extRouter.Use(authFunc)
|
||||
extRouter.Methods("GET").Handler(promhttp.Handler())
|
||||
|
||||
@@ -4,9 +4,13 @@
|
||||
package extensions
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
|
||||
"zotregistry.io/zot/pkg/api/config"
|
||||
zcommon "zotregistry.io/zot/pkg/common"
|
||||
"zotregistry.io/zot/pkg/extensions/monitoring"
|
||||
"zotregistry.io/zot/pkg/log"
|
||||
)
|
||||
|
||||
@@ -18,8 +22,12 @@ func EnableMetricsExtension(config *config.Config, log log.Logger, rootDir strin
|
||||
|
||||
// SetupMetricsRoutes ...
|
||||
func SetupMetricsRoutes(conf *config.Config, router *mux.Router,
|
||||
authFunc mux.MiddlewareFunc, log log.Logger,
|
||||
authFunc mux.MiddlewareFunc, log log.Logger, metrics monitoring.MetricServer,
|
||||
) {
|
||||
log.Warn().Msg("skipping setting up metrics routes because given zot binary doesn't include this feature," +
|
||||
"please build a binary that does so")
|
||||
getMetrics := func(w http.ResponseWriter, r *http.Request) {
|
||||
m := metrics.ReceiveMetrics()
|
||||
zcommon.WriteJSON(w, http.StatusOK, m)
|
||||
}
|
||||
|
||||
router.HandleFunc("/metrics", getMetrics).Methods("GET")
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ func NewMetricsClient(config *MetricsConfig, logger log.Logger) *MetricsClient {
|
||||
|
||||
func (mc *MetricsClient) GetMetrics() (*MetricsInfo, error) {
|
||||
metrics := &MetricsInfo{}
|
||||
if _, err := mc.makeGETRequest(mc.config.Address+"/v2/metrics", metrics); err != nil {
|
||||
if _, err := mc.makeGETRequest(mc.config.Address+"/metrics", metrics); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user