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  }