mirror of
https://github.com/kubescape/kubescape.git
synced 2026-04-15 06:58:11 +00:00
* bump version Signed-off-by: David Wertenteil <dwertent@armosec.io> * change default view Signed-off-by: David Wertenteil <dwertent@armosec.io> * fixed tests Signed-off-by: David Wertenteil <dwertent@armosec.io> * fixed go mod Signed-off-by: David Wertenteil <dwertent@armosec.io> --------- Signed-off-by: David Wertenteil <dwertent@armosec.io>
60 lines
1.5 KiB
Go
60 lines
1.5 KiB
Go
package metrics
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
"sync"
|
|
|
|
"github.com/kubescape/go-logger"
|
|
"github.com/kubescape/go-logger/helpers"
|
|
"go.opentelemetry.io/otel"
|
|
"go.opentelemetry.io/otel/metric"
|
|
)
|
|
|
|
const (
|
|
METER_NAME = "github.com/kubescape/kubescape/v3"
|
|
METRIC_NAME_PREFIX = "kubescape"
|
|
)
|
|
|
|
var initOnce sync.Once
|
|
|
|
// Metrics are defined here
|
|
var (
|
|
kubernetesResourcesCount metric.Int64UpDownCounter
|
|
workerNodesCount metric.Int64UpDownCounter
|
|
)
|
|
|
|
// Init initializes the metrics
|
|
func Init() {
|
|
initOnce.Do(func() {
|
|
var err error
|
|
meterProvider := otel.GetMeterProvider()
|
|
meter := meterProvider.Meter(METER_NAME)
|
|
metricName := func(name string) string {
|
|
return strings.Join([]string{METRIC_NAME_PREFIX, name}, "_")
|
|
}
|
|
|
|
if kubernetesResourcesCount, err = meter.Int64UpDownCounter(metricName("kubernetes_resources_count")); err != nil {
|
|
logger.L().Error("failed to register instrument", helpers.Error(err))
|
|
}
|
|
|
|
if workerNodesCount, err = meter.Int64UpDownCounter(metricName("worker_nodes_count")); err != nil {
|
|
logger.L().Error("failed to register instrument", helpers.Error(err))
|
|
}
|
|
})
|
|
}
|
|
|
|
// UpdateKubernetesResourcesCount updates the kubernetes resources count metric
|
|
func UpdateKubernetesResourcesCount(ctx context.Context, value int64) {
|
|
if kubernetesResourcesCount != nil {
|
|
kubernetesResourcesCount.Add(ctx, value)
|
|
}
|
|
}
|
|
|
|
// UpdateWorkerNodesCount updates the worker nodes count metric
|
|
func UpdateWorkerNodesCount(ctx context.Context, value int64) {
|
|
if workerNodesCount != nil {
|
|
workerNodesCount.Add(ctx, value)
|
|
}
|
|
}
|