@@ -115,10 +115,16 @@ func main() {
115115 ctx , cancel := context .WithCancel (context .Background ())
116116 defer cancel ()
117117
118- metricsHandler , err := startMetricsServer (ctx , * nodeID , log , cmClient , store )
119- if err != nil {
120- panic ("failed to setup metrics server: " + err .Error ())
121- }
118+ certRequestInformerFactory := externalversions .NewSharedInformerFactory (cmClient , 5 * time .Second )
119+ certRequestInformer := certRequestInformerFactory .Certmanager ().V1 ().CertificateRequests ()
120+ metricsHandler := metrics .New (* nodeID , & log , prometheus .NewRegistry (), store , certRequestInformer .Lister ())
121+
122+ go func () {
123+ err := startMetricsServer (ctx , log , metricsHandler , certRequestInformerFactory )
124+ if err != nil {
125+ panic ("failed to setup metrics server: " + err .Error ())
126+ }
127+ }()
122128
123129 d , err := driver .New (ctx , * endpoint , log , driver.Options {
124130 DriverName : "csi.cert-manager.io" ,
@@ -369,32 +375,20 @@ func keyUsagesFromAttributes(usagesCSV string) []cmapi.KeyUsage {
369375 return keyUsages
370376}
371377
372- // startMetricsServer starts a server listening on port 6443 , until the supplied context is cancelled,
378+ // startMetricsServer starts a server listening on port 9402 , until the supplied context is cancelled,
373379// after which the server will gracefully shutdown (within 5 seconds).
374380func startMetricsServer (
375381 rootCtx context.Context ,
376- nodeId string ,
377382 logger logr.Logger ,
378- cmClient * cmclient. Clientset ,
379- metadataReader storage. MetadataReader ,
380- ) ( * metrics. Metrics , error ) {
383+ metricsHandler * metrics. Metrics ,
384+ certRequestInformerFactory externalversions. SharedInformerFactory ,
385+ ) error {
381386 g , ctx := errgroup .WithContext (rootCtx )
382- defer func () {
383- if err := g .Wait (); err != nil {
384- logger .Error (err , "fail to stop metric server" )
385- }
386- }()
387-
388- metricsHandler := metrics .New (& logger , prometheus .NewRegistry ())
389-
390- certRequestInformerFactory := externalversions .NewSharedInformerFactory (cmClient , 5 * time .Second )
391- certRequestInformer := certRequestInformerFactory .Certmanager ().V1 ().CertificateRequests ()
392- metricsHandler .SetupCertificateRequestCollector (nodeId , metadataReader , certRequestInformer .Lister ())
393387
394388 listenConfig := & net.ListenConfig {}
395- metricsLn , err := listenConfig .Listen (ctx , "tcp" , "127.0.0.1:6443 " )
389+ metricsLn , err := listenConfig .Listen (ctx , "tcp" , ":9402 " )
396390 if err != nil {
397- return nil , err
391+ return err
398392 }
399393 metricsServer := & http.Server {
400394 Addr : metricsLn .Addr ().String (),
@@ -425,5 +419,5 @@ func startMetricsServer(
425419 }
426420 return nil
427421 })
428- return metricsHandler , nil
422+ return g . Wait ()
429423}
0 commit comments