mirror of https://github.com/k3s-io/k3s
59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package metrics
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
)
|
|
|
|
const MetricsGenericControllerEnv = "NORMAN_GENERIC_CONTROLLER_METRICS"
|
|
|
|
var (
|
|
genericControllerMetrics = false
|
|
TotalHandlerExecution = prometheus.NewCounterVec(
|
|
prometheus.CounterOpts{
|
|
Subsystem: "norman_generic_controller",
|
|
Name: "total_handler_execution",
|
|
Help: "Total Count of executing handler",
|
|
},
|
|
[]string{"name", "handlerName"},
|
|
)
|
|
|
|
TotalHandlerFailure = prometheus.NewCounterVec(
|
|
prometheus.CounterOpts{
|
|
Subsystem: "norman_generic_controller",
|
|
Name: "total_handler_failure",
|
|
Help: "Total Count of handler failure",
|
|
},
|
|
[]string{"name", "handlerName", "key"},
|
|
)
|
|
)
|
|
|
|
func init() {
|
|
if os.Getenv(MetricsGenericControllerEnv) == "true" {
|
|
genericControllerMetrics = true
|
|
}
|
|
}
|
|
|
|
func IncTotalHandlerExecution(controllerName, handlerName string) {
|
|
if genericControllerMetrics {
|
|
TotalHandlerExecution.With(
|
|
prometheus.Labels{
|
|
"name": controllerName,
|
|
"handlerName": handlerName},
|
|
).Inc()
|
|
}
|
|
}
|
|
|
|
func IncTotalHandlerFailure(controllerName, handlerName, key string) {
|
|
if genericControllerMetrics {
|
|
TotalHandlerFailure.With(
|
|
prometheus.Labels{
|
|
"name": controllerName,
|
|
"handlerName": handlerName,
|
|
"key": key,
|
|
},
|
|
).Inc()
|
|
}
|
|
}
|