Skip to content

Commit 9e7c3fa

Browse files
committed
add scrape, process, Go, restclient metrics
1 parent 67e8986 commit 9e7c3fa

File tree

3 files changed

+322
-7
lines changed

3 files changed

+322
-7
lines changed

pkg/metric/metric.go

+27-7
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ import (
66
"strings"
77
"sync"
88

9+
"github.com/go-logr/logr"
910
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/utils"
1011
"github.com/prometheus/client_golang/prometheus"
1112
versioncollector "github.com/prometheus/client_golang/prometheus/collectors/version"
1213
"github.com/prometheus/client_golang/prometheus/promhttp"
14+
"k8s.io/component-base/metrics/legacyregistry"
15+
_ "k8s.io/component-base/metrics/prometheus/restclient"
1316
"k8s.io/klog/v2"
1417
)
1518

@@ -49,18 +52,35 @@ func NewMetricHandler(driverNames []string, serviceType utils.ServiceType) *Hand
4952
return newHandler()
5053
}
5154

55+
type logger struct {
56+
logr.Logger
57+
}
58+
59+
func (l logger) Println(v ...interface{}) {
60+
if len(v) == 2 {
61+
msg, ok1 := v[0].(string)
62+
err, ok2 := v[1].(error)
63+
if ok1 && ok2 {
64+
l.Logger.Error(err, msg)
65+
return
66+
}
67+
}
68+
l.Logger.Error(nil, "failed to gather metrics", "error", v)
69+
}
70+
5271
func (h *Handler) innerHandler() (http.Handler, error) {
5372
r := prometheus.NewRegistry()
54-
r.MustRegister(versioncollector.NewCollector("alibaba_cloud_csi_driver"))
55-
if err := r.Register(csiCollectorInstance); err != nil {
56-
return nil, fmt.Errorf("Couldn't register node collector: %s", err)
57-
}
58-
handler := promhttp.HandlerFor(
59-
r,
73+
r.MustRegister(
74+
versioncollector.NewCollector("alibaba_cloud_csi_driver"),
75+
csiCollectorInstance)
76+
handler := promhttp.InstrumentMetricHandler(r, promhttp.HandlerFor(
77+
prometheus.Gatherers{r, legacyregistry.DefaultGatherer},
6078
promhttp.HandlerOpts{
6179
ErrorHandling: promhttp.ContinueOnError,
80+
ErrorLog: logger{klog.Background()},
81+
Registry: r,
6282
},
63-
)
83+
))
6484
return handler, nil
6585
}
6686

vendor/k8s.io/component-base/metrics/prometheus/restclient/metrics.go

+294
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

+1
Original file line numberDiff line numberDiff line change
@@ -738,6 +738,7 @@ k8s.io/component-base/logs/klogflags
738738
k8s.io/component-base/metrics
739739
k8s.io/component-base/metrics/legacyregistry
740740
k8s.io/component-base/metrics/prometheus/feature
741+
k8s.io/component-base/metrics/prometheus/restclient
741742
k8s.io/component-base/metrics/prometheusextension
742743
k8s.io/component-base/version
743744
# k8s.io/klog/v2 v2.120.1

0 commit comments

Comments
 (0)