@@ -20,23 +20,9 @@ import (
20
20
"net/url"
21
21
"time"
22
22
23
- "k8s.io/apimachinery/pkg/util/runtime"
24
-
25
23
"github.com/prometheus/client_golang/prometheus"
26
24
reflectormetrics "k8s.io/client-go/tools/cache"
27
25
clientmetrics "k8s.io/client-go/tools/metrics"
28
- workqueuemetrics "k8s.io/client-go/util/workqueue"
29
- )
30
-
31
- const (
32
- workQueueSubsystem = "workqueue"
33
- depthKey = "depth"
34
- addsKey = "adds_total"
35
- queueLatencyKey = "queue_duration_seconds"
36
- workDurationKey = "work_duration_seconds"
37
- unfinishedWorkKey = "unfinished_work_seconds"
38
- longestRunningProcessorKey = "longest_running_processor_seconds"
39
- retriesKey = "retries_total"
40
26
)
41
27
42
28
// this file contains setup logic to initialize the myriad of places
@@ -117,62 +103,11 @@ var (
117
103
Name : "last_resource_version" ,
118
104
Help : "Last resource version seen for the reflectors" ,
119
105
}, []string {"name" })
120
-
121
- // workqueue metrics
122
-
123
- depth = prometheus .NewGaugeVec (prometheus.GaugeOpts {
124
- Subsystem : workQueueSubsystem ,
125
- Name : depthKey ,
126
- Help : "Current depth of workqueue" ,
127
- }, []string {"name" })
128
-
129
- adds = prometheus .NewCounterVec (prometheus.CounterOpts {
130
- Subsystem : workQueueSubsystem ,
131
- Name : addsKey ,
132
- Help : "Total number of adds handled by workqueue" ,
133
- }, []string {"name" })
134
-
135
- latency = prometheus .NewHistogramVec (prometheus.HistogramOpts {
136
- Subsystem : workQueueSubsystem ,
137
- Name : queueLatencyKey ,
138
- Help : "How long in seconds an item stays in workqueue before being requested." ,
139
- Buckets : prometheus .ExponentialBuckets (10e-9 , 10 , 10 ),
140
- }, []string {"name" })
141
-
142
- workDuration = prometheus .NewHistogramVec (prometheus.HistogramOpts {
143
- Subsystem : workQueueSubsystem ,
144
- Name : workDurationKey ,
145
- Help : "How long in seconds processing an item from workqueue takes." ,
146
- Buckets : prometheus .ExponentialBuckets (10e-9 , 10 , 10 ),
147
- }, []string {"name" })
148
-
149
- unfinishedWork = prometheus .NewGaugeVec (prometheus.GaugeOpts {
150
- Subsystem : workQueueSubsystem ,
151
- Name : unfinishedWorkKey ,
152
- Help : "How many seconds of work has done that " +
153
- "is in progress and hasn't been observed by work_duration. Large " +
154
- "values indicate stuck threads. One can deduce the number of stuck " +
155
- "threads by observing the rate at which this increases." ,
156
- }, []string {"name" })
157
-
158
- longestRunning = prometheus .NewGaugeVec (prometheus.GaugeOpts {
159
- Subsystem : workQueueSubsystem ,
160
- Name : longestRunningProcessorKey ,
161
- Help : "How many seconds has the longest running " +
162
- "processor for workqueue been running." ,
163
- }, []string {"name" })
164
-
165
- retries = prometheus .NewCounterVec (prometheus.CounterOpts {
166
- Subsystem : workQueueSubsystem ,
167
- Name : retriesKey ,
168
- Help : "Total number of retries handled by workqueue" ,
169
- }, []string {"name" })
170
106
)
171
107
172
108
func init () {
173
109
registerClientMetrics ()
174
110
registerReflectorMetrics ()
175
- registerWorkqueueMetrics ()
176
111
}
177
112
178
113
// registerClientMetrics sets up the client latency metrics from client-go
@@ -199,19 +134,6 @@ func registerReflectorMetrics() {
199
134
reflectormetrics .SetReflectorMetricsProvider (reflectorMetricsProvider {})
200
135
}
201
136
202
- // registerWorkQueueMetrics sets up workqueue (other reconcile) metrics
203
- func registerWorkqueueMetrics () {
204
- Registry .MustRegister (depth )
205
- Registry .MustRegister (adds )
206
- Registry .MustRegister (latency )
207
- Registry .MustRegister (workDuration )
208
- Registry .MustRegister (retries )
209
- Registry .MustRegister (longestRunning )
210
- Registry .MustRegister (unfinishedWork )
211
-
212
- workqueuemetrics .SetProvider (workqueueMetricsProvider {})
213
- }
214
-
215
137
// this section contains adapters, implementations, and other sundry organic, artisinally
216
138
// hand-crafted syntax trees required to convince client-go that it actually wants to let
217
139
// someone use its metrics.
@@ -273,114 +195,3 @@ func (reflectorMetricsProvider) NewItemsInWatchMetric(name string) reflectormetr
273
195
func (reflectorMetricsProvider ) NewLastResourceVersionMetric (name string ) reflectormetrics.GaugeMetric {
274
196
return lastResourceVersion .WithLabelValues (name )
275
197
}
276
-
277
- // Workqueue metrics (method #3 for client-go metrics),
278
- // copied (more-or-less directly) from k8s.io/kubernetes setup code
279
- // (which isn't anywhere in an easily-importable place).
280
- // TODO(directxman12): stop "cheating" and calling histograms summaries when we pull in the latest deps
281
-
282
- type workqueueMetricsProvider struct {}
283
-
284
- func (workqueueMetricsProvider ) NewDepthMetric (name string ) workqueuemetrics.GaugeMetric {
285
- return depth .WithLabelValues (name )
286
- }
287
-
288
- func (workqueueMetricsProvider ) NewAddsMetric (name string ) workqueuemetrics.CounterMetric {
289
- return adds .WithLabelValues (name )
290
- }
291
-
292
- func (workqueueMetricsProvider ) NewLatencyMetric (name string ) workqueuemetrics.HistogramMetric {
293
- return latency .WithLabelValues (name )
294
- }
295
-
296
- func (workqueueMetricsProvider ) NewWorkDurationMetric (name string ) workqueuemetrics.HistogramMetric {
297
- return workDuration .WithLabelValues (name )
298
- }
299
-
300
- func (workqueueMetricsProvider ) NewUnfinishedWorkSecondsMetric (name string ) workqueuemetrics.SettableGaugeMetric {
301
- return unfinishedWork .WithLabelValues (name )
302
- }
303
-
304
- func (workqueueMetricsProvider ) NewLongestRunningProcessorSecondsMetric (name string ) workqueuemetrics.SettableGaugeMetric {
305
- return longestRunning .WithLabelValues (name )
306
- }
307
-
308
- func (workqueueMetricsProvider ) NewRetriesMetric (name string ) workqueuemetrics.CounterMetric {
309
- return retries .WithLabelValues (name )
310
- }
311
-
312
- func (workqueueMetricsProvider ) NewDeprecatedDepthMetric (name string ) workqueuemetrics.GaugeMetric {
313
- depth := prometheus .NewGauge (prometheus.GaugeOpts {
314
- Subsystem : name ,
315
- Name : "depth" ,
316
- Help : "Current depth of workqueue: " + name ,
317
- })
318
- runtime .HandleError (Registry .Register (depth ))
319
- return depth
320
- }
321
-
322
- func (workqueueMetricsProvider ) NewDeprecatedAddsMetric (name string ) workqueuemetrics.CounterMetric {
323
- adds := prometheus .NewCounter (prometheus.CounterOpts {
324
- Subsystem : name ,
325
- Name : "adds" ,
326
- Help : "Total number of adds handled by workqueue: " + name ,
327
- })
328
- runtime .HandleError (Registry .Register (adds ))
329
- return adds
330
- }
331
-
332
- func (workqueueMetricsProvider ) NewDeprecatedLatencyMetric (name string ) workqueuemetrics.SummaryMetric {
333
- latency := prometheus .NewSummary (prometheus.SummaryOpts {
334
- Subsystem : name ,
335
- Name : "queue_latency" ,
336
- Help : "How long an item stays in workqueue" + name + " before being requested." ,
337
- ConstLabels : prometheus.Labels {"name" : name },
338
- })
339
- runtime .HandleError (Registry .Register (latency ))
340
- return latency
341
- }
342
-
343
- func (workqueueMetricsProvider ) NewDeprecatedWorkDurationMetric (name string ) workqueuemetrics.SummaryMetric {
344
- workDuration := prometheus .NewSummary (prometheus.SummaryOpts {
345
- Subsystem : name ,
346
- Name : "work_duration" ,
347
- Help : "How long processing an item from workqueue" + name + " takes." ,
348
- ConstLabels : prometheus.Labels {"name" : name },
349
- })
350
- runtime .HandleError (Registry .Register (workDuration ))
351
- return workDuration
352
- }
353
-
354
- func (workqueueMetricsProvider ) NewDeprecatedUnfinishedWorkSecondsMetric (name string ) workqueuemetrics.SettableGaugeMetric {
355
- unfinishedWork := prometheus .NewGauge (prometheus.GaugeOpts {
356
- Subsystem : name ,
357
- Name : "unfinished_work_seconds" ,
358
- Help : "How many seconds of work " + name + " has done that " +
359
- "is in progress and hasn't been observed by work_duration. Large " +
360
- "values indicate stuck threads. One can deduce the number of stuck " +
361
- "threads by observing the rate at which this increases." ,
362
- })
363
- runtime .HandleError (Registry .Register (unfinishedWork ))
364
- return unfinishedWork
365
- }
366
-
367
- func (workqueueMetricsProvider ) NewDeprecatedLongestRunningProcessorMicrosecondsMetric (name string ) workqueuemetrics.SettableGaugeMetric {
368
- longestRunning := prometheus .NewGauge (prometheus.GaugeOpts {
369
- Subsystem : name ,
370
- Name : "longest_running_processor_microseconds" ,
371
- Help : "How many microseconds has the longest running " +
372
- "processor for " + name + " been running." ,
373
- })
374
- runtime .HandleError (Registry .Register (longestRunning ))
375
- return longestRunning
376
- }
377
-
378
- func (workqueueMetricsProvider ) NewDeprecatedRetriesMetric (name string ) workqueuemetrics.CounterMetric {
379
- retries := prometheus .NewCounter (prometheus.CounterOpts {
380
- Subsystem : name ,
381
- Name : "retries" ,
382
- Help : "Total number of retries handled by workqueue: " + name ,
383
- })
384
- runtime .HandleError (Registry .Register (retries ))
385
- return retries
386
- }
0 commit comments