@@ -17,23 +17,17 @@ limitations under the License.
17
17
package metrics
18
18
19
19
import (
20
- "net"
21
20
"net/http"
22
- "time"
23
21
24
22
"github.com/go-logr/logr"
25
23
"github.com/prometheus/client_golang/prometheus"
26
- "github.com/prometheus/client_golang/prometheus/collectors"
27
24
"github.com/prometheus/client_golang/prometheus/promhttp"
28
25
)
29
26
30
27
const (
31
28
// 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"
37
31
)
38
32
39
33
// Metrics is designed to be a shared object for updating the metrics exposed by csi-lib
@@ -51,7 +45,7 @@ type Metrics struct {
51
45
}
52
46
53
47
// 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 {
55
49
var (
56
50
certificateRequestExpiryTimeSeconds = prometheus .NewGaugeVec (
57
51
prometheus.GaugeOpts {
@@ -124,12 +118,6 @@ func New(logger *logr.Logger) *Metrics {
124
118
)
125
119
)
126
120
127
- // Create Registry and register the recommended collectors
128
- registry := prometheus .NewRegistry ()
129
- registry .MustRegister (
130
- collectors .NewProcessCollector (collectors.ProcessCollectorOpts {}),
131
- collectors .NewGoCollector (),
132
- )
133
121
// Create server and register Prometheus metrics handler
134
122
m := & Metrics {
135
123
log : logger .WithName ("metrics" ),
@@ -144,11 +132,6 @@ func New(logger *logr.Logger) *Metrics {
144
132
managedCertificateCount : managedCertificateCount ,
145
133
}
146
134
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 {
152
135
m .registry .MustRegister (m .certificateRequestExpiryTimeSeconds )
153
136
m .registry .MustRegister (m .certificateRequestRenewalTimeSeconds )
154
137
m .registry .MustRegister (m .certificateRequestReadyStatus )
@@ -157,18 +140,15 @@ func (m *Metrics) NewServer(ln net.Listener) *http.Server {
157
140
m .registry .MustRegister (m .managedVolumeCount )
158
141
m .registry .MustRegister (m .managedCertificateCount )
159
142
143
+ return m
144
+ }
145
+
146
+ // DefaultHandler returns a default prometheus metrics HTTP handler
147
+ func (m * Metrics ) DefaultHandler () http.Handler {
160
148
mux := http .NewServeMux ()
161
149
mux .Handle ("/metrics" , promhttp .HandlerFor (m .registry , promhttp.HandlerOpts {}))
162
150
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
172
152
}
173
153
174
154
// IncrementIssueCallCount will increase the issue call counter for the driver.
0 commit comments