...
1
16
17 package metrics
18
19 import (
20 "sync"
21 "time"
22
23 "k8s.io/component-base/metrics"
24 "k8s.io/component-base/metrics/legacyregistry"
25 )
26
27 const (
28 kubeletSubsystem = "kubelet"
29 )
30
31 var (
32
33 HTTPRequests = metrics.NewCounterVec(
34 &metrics.CounterOpts{
35 Subsystem: kubeletSubsystem,
36 Name: "http_requests_total",
37 Help: "Number of the http requests received since the server started",
38 StabilityLevel: metrics.ALPHA,
39 },
40
41
42
43 []string{"method", "path", "server_type", "long_running"},
44 )
45
46 HTTPRequestsDuration = metrics.NewHistogramVec(
47 &metrics.HistogramOpts{
48 Subsystem: kubeletSubsystem,
49 Name: "http_requests_duration_seconds",
50 Help: "Duration in seconds to serve http requests",
51
52 Buckets: metrics.DefBuckets,
53 StabilityLevel: metrics.ALPHA,
54 },
55 []string{"method", "path", "server_type", "long_running"},
56 )
57
58 HTTPInflightRequests = metrics.NewGaugeVec(
59 &metrics.GaugeOpts{
60 Subsystem: kubeletSubsystem,
61 Name: "http_inflight_requests",
62 Help: "Number of the inflight http requests",
63 StabilityLevel: metrics.ALPHA,
64 },
65 []string{"method", "path", "server_type", "long_running"},
66 )
67
68
69 VolumeStatCalDuration = metrics.NewHistogramVec(
70 &metrics.HistogramOpts{
71 Subsystem: kubeletSubsystem,
72 Name: "volume_metric_collection_duration_seconds",
73 Help: "Duration in seconds to calculate volume stats",
74 Buckets: metrics.DefBuckets,
75 StabilityLevel: metrics.ALPHA,
76 },
77 []string{"metric_source"},
78 )
79 )
80
81 var registerMetrics sync.Once
82
83
84 func Register() {
85 registerMetrics.Do(func() {
86 legacyregistry.MustRegister(HTTPRequests)
87 legacyregistry.MustRegister(HTTPRequestsDuration)
88 legacyregistry.MustRegister(HTTPInflightRequests)
89 legacyregistry.MustRegister(VolumeStatCalDuration)
90 })
91 }
92
93
94 func SinceInSeconds(start time.Time) float64 {
95 return time.Since(start).Seconds()
96 }
97
98
99 func CollectVolumeStatCalDuration(metricSource string, start time.Time) {
100 VolumeStatCalDuration.WithLabelValues(metricSource).Observe(SinceInSeconds(start))
101 }
102
View as plain text