github.com/cilium/cilium@v1.16.2/operator/api/metrics.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package api 5 6 import ( 7 "github.com/cilium/hive/cell" 8 "github.com/go-openapi/runtime/middleware" 9 10 "github.com/cilium/cilium/api/v1/operator/server/restapi/metrics" 11 opMetrics "github.com/cilium/cilium/operator/metrics" 12 ) 13 14 var MetricsHandlerCell = cell.Module( 15 "metrics-handler", 16 "Operator metrics HTTP handler", 17 18 cell.Provide(newMetricsHandler), 19 ) 20 21 type metricsHandler struct{} 22 23 func newMetricsHandler() metrics.GetMetricsHandler { 24 return &metricsHandler{} 25 } 26 27 func (h *metricsHandler) Handle(params metrics.GetMetricsParams) middleware.Responder { 28 m, err := opMetrics.DumpMetrics() 29 if err != nil { 30 return metrics.NewGetMetricsFailed() 31 } 32 33 return metrics.NewGetMetricsOK().WithPayload(m) 34 }