From 9802737d8a576533565cd6cb01d10fd7603251f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A7=E6=A1=90?= Date: Fri, 28 Jul 2023 21:15:56 +0800 Subject: [PATCH] prometheus metrics #231 --- cmd/localstorage-controller/main.go | 6 +++--- deploy/latest/ls-controller.yaml | 3 +++ pkg/metrics/metric.go | 14 ++++++++------ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/cmd/localstorage-controller/main.go b/cmd/localstorage-controller/main.go index 4d9fcea..3580f55 100644 --- a/cmd/localstorage-controller/main.go +++ b/cmd/localstorage-controller/main.go @@ -19,7 +19,6 @@ package main import ( "context" "flag" - "github.com/caoyingjunz/csi-driver-localstorage/pkg/metrics" "net" "net/http" "os" @@ -39,6 +38,7 @@ import ( "github.com/caoyingjunz/csi-driver-localstorage/pkg/client/clientset/versioned" "github.com/caoyingjunz/csi-driver-localstorage/pkg/client/informers/externalversions" "github.com/caoyingjunz/csi-driver-localstorage/pkg/controller/storage" + "github.com/caoyingjunz/csi-driver-localstorage/pkg/metrics" "github.com/caoyingjunz/csi-driver-localstorage/pkg/runtime" "github.com/caoyingjunz/csi-driver-localstorage/pkg/signals" "github.com/caoyingjunz/csi-driver-localstorage/pkg/util" @@ -84,7 +84,7 @@ var ( // metrics metricsPort = flag.Int("metrics-port", 0, "metricsPort is the port of the localhost metrics endpoint (set to 0 to disable)") metricsPath = flag.String("metrics-path", "/metrics", "metricsPath is the path of the localhost metrics endpoint") - interval = flag.Duration("metrics-interval", 10*time.Second, "metricsInterval is the interval of the metrics collection") + interval = flag.Duration("metrics-interval", 10, "metricsInterval is the interval of the metrics collection, in seconds (default 10s)") ) func init() { @@ -173,7 +173,7 @@ func main() { if *metricsPort > 0 { mux := http.NewServeMux() metrics.InstallHandler(mux, *metricsPath) - if err := metrics.TimingAcquisition(ctx, *interval); err != nil { + if err := metrics.TimingAcquisition(ctx, *interval*time.Second); err != nil { klog.ErrorS(err, "Init metrics failed") } go wait.Until(func() { diff --git a/deploy/latest/ls-controller.yaml b/deploy/latest/ls-controller.yaml index 6cc0843..833e94f 100644 --- a/deploy/latest/ls-controller.yaml +++ b/deploy/latest/ls-controller.yaml @@ -19,6 +19,9 @@ spec: - -v=2 # port's value equals 0 means health check func disabled - --healthz-port=10258 + - --metrics-port=10259 + - --metrics-path=/metrics + - --metrics-interval=10 - --cert-dir=/tmp/cert - --port=8443 image: harbor.powerlaw.club/pixiuio/localstorage-controller:latest diff --git a/pkg/metrics/metric.go b/pkg/metrics/metric.go index 8aa0de9..11590d7 100644 --- a/pkg/metrics/metric.go +++ b/pkg/metrics/metric.go @@ -2,17 +2,19 @@ package metrics import ( "context" - "github.com/caoyingjunz/csi-driver-localstorage/pkg/client/clientset/versioned" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" + "net/http" + "path/filepath" + "time" + metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/util/homedir" "k8s.io/klog/v2" - "net/http" - "path/filepath" - "time" + + "github.com/caoyingjunz/csi-driver-localstorage/pkg/client/clientset/versioned" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" ) var (