@@ -17,23 +17,17 @@ limitations under the License.
1717package metrics
1818
1919import (
20- "net"
2120 "net/http"
22- "time"
2321
2422 "github.com/go-logr/logr"
2523 "github.com/prometheus/client_golang/prometheus"
26- "github.com/prometheus/client_golang/prometheus/collectors"
2724 "github.com/prometheus/client_golang/prometheus/promhttp"
2825)
2926
3027const (
3128 // Namespace is the namespace for csi-lib metric names
32- namespace = "certmanager"
33- subsystem = "csi"
34- prometheusMetricsServerReadTimeout = 8 * time .Second
35- prometheusMetricsServerWriteTimeout = 8 * time .Second
36- prometheusMetricsServerMaxHeaderBytes = 1 << 20 // 1 MiB
29+ namespace = "certmanager"
30+ subsystem = "csi"
3731)
3832
3933// Metrics is designed to be a shared object for updating the metrics exposed by csi-lib
@@ -51,7 +45,7 @@ type Metrics struct {
5145}
5246
5347// New creates a Metrics struct and populates it with prometheus metric types.
54- func New (logger * logr.Logger ) * Metrics {
48+ func New (logger * logr.Logger , registry * prometheus. Registry ) * Metrics {
5549 var (
5650 certificateRequestExpiryTimeSeconds = prometheus .NewGaugeVec (
5751 prometheus.GaugeOpts {
@@ -124,12 +118,6 @@ func New(logger *logr.Logger) *Metrics {
124118 )
125119 )
126120
127- // Create Registry and register the recommended collectors
128- registry := prometheus .NewRegistry ()
129- registry .MustRegister (
130- collectors .NewProcessCollector (collectors.ProcessCollectorOpts {}),
131- collectors .NewGoCollector (),
132- )
133121 // Create server and register Prometheus metrics handler
134122 m := & Metrics {
135123 log : logger .WithName ("metrics" ),
@@ -144,11 +132,6 @@ func New(logger *logr.Logger) *Metrics {
144132 managedCertificateCount : managedCertificateCount ,
145133 }
146134
147- return m
148- }
149-
150- // NewServer registers Prometheus metrics and returns a new Prometheus metrics HTTP server.
151- func (m * Metrics ) NewServer (ln net.Listener ) * http.Server {
152135 m .registry .MustRegister (m .certificateRequestExpiryTimeSeconds )
153136 m .registry .MustRegister (m .certificateRequestRenewalTimeSeconds )
154137 m .registry .MustRegister (m .certificateRequestReadyStatus )
@@ -157,18 +140,15 @@ func (m *Metrics) NewServer(ln net.Listener) *http.Server {
157140 m .registry .MustRegister (m .managedVolumeCount )
158141 m .registry .MustRegister (m .managedCertificateCount )
159142
143+ return m
144+ }
145+
146+ // DefaultHandler returns a default prometheus metrics HTTP handler
147+ func (m * Metrics ) DefaultHandler () http.Handler {
160148 mux := http .NewServeMux ()
161149 mux .Handle ("/metrics" , promhttp .HandlerFor (m .registry , promhttp.HandlerOpts {}))
162150
163- server := & http.Server {
164- Addr : ln .Addr ().String (),
165- ReadTimeout : prometheusMetricsServerReadTimeout ,
166- WriteTimeout : prometheusMetricsServerWriteTimeout ,
167- MaxHeaderBytes : prometheusMetricsServerMaxHeaderBytes ,
168- Handler : mux ,
169- }
170-
171- return server
151+ return mux
172152}
173153
174154// IncrementIssueCallCount will increase the issue call counter for the driver.
0 commit comments