...
1
16
17 package legacyregistry
18
19 import (
20 "net/http"
21 "time"
22
23 "github.com/prometheus/client_golang/prometheus"
24 "github.com/prometheus/client_golang/prometheus/collectors"
25 "github.com/prometheus/client_golang/prometheus/promhttp"
26
27 "k8s.io/component-base/metrics"
28 )
29
30 var (
31 defaultRegistry = metrics.NewKubeRegistry()
32
33 DefaultGatherer metrics.Gatherer = defaultRegistry
34
35 Reset = defaultRegistry.Reset
36
37 MustRegister = defaultRegistry.MustRegister
38
39
40
41
42 RawMustRegister = defaultRegistry.RawMustRegister
43
44
45 Register = defaultRegistry.Register
46
47
48 Registerer = defaultRegistry.Registerer
49
50 processStart time.Time
51 )
52
53 func init() {
54 RawMustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{}))
55 RawMustRegister(collectors.NewGoCollector(collectors.WithGoCollectorRuntimeMetrics(collectors.MetricsAll)))
56 defaultRegistry.RegisterMetaMetrics()
57 processStart = time.Now()
58 }
59
60
61
62
63 func Handler() http.Handler {
64 return promhttp.InstrumentMetricHandler(prometheus.DefaultRegisterer, promhttp.HandlerFor(defaultRegistry, promhttp.HandlerOpts{ProcessStartTime: processStart}))
65 }
66
67
68
69 func HandlerWithReset() http.Handler {
70 return promhttp.InstrumentMetricHandler(
71 prometheus.DefaultRegisterer,
72 metrics.HandlerWithReset(defaultRegistry, metrics.HandlerOpts{ProcessStartTime: processStart}))
73 }
74
75
76 func CustomRegister(c metrics.StableCollector) error {
77 err := defaultRegistry.CustomRegister(c)
78
79
80 _ = prometheus.Register(c)
81
82 return err
83 }
84
85
86 func CustomMustRegister(cs ...metrics.StableCollector) {
87 defaultRegistry.CustomMustRegister(cs...)
88
89 for _, c := range cs {
90 prometheus.MustRegister(c)
91 }
92 }
93
View as plain text