Skip to content

Commit f52f467

Browse files
committed
pkg/*metrics*: metrics functions now return errors and use SDK package logger
1 parent 81e929b commit f52f467

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

pkg/sdk/internal/metrics/metrics.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
package metrics
1616

1717
import (
18+
"fmt"
1819
"sync"
1920

2021
prom "github.com/prometheus/client_golang/prometheus"
21-
"github.com/sirupsen/logrus"
2222
)
2323

2424
const (
@@ -65,13 +65,15 @@ func New() *Collector {
6565
}
6666

6767
// RegisterCollector - add collector safely to prometheus
68-
func RegisterCollector(c *Collector) {
68+
func RegisterCollector(c *Collector) error {
69+
errCh := make(chan error)
6970
once.Do(func() {
70-
err := prom.Register(c)
71-
if err != nil {
72-
logrus.Errorf("unable to register collector with prometheus: %v", err)
73-
}
71+
errCh <- prom.Register(c)
7472
})
73+
if err := <-errCh; err != nil {
74+
return fmt.Errorf("unable to register collector with prometheus: %v", err)
75+
}
76+
return nil
7577
}
7678

7779
// Describe returns all the descriptions of the collector

pkg/sdk/metrics.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,28 @@ package sdk
1616

1717
import (
1818
"context"
19+
"fmt"
1920
"net/http"
2021
"strconv"
2122

2223
"github.com/operator-framework/operator-sdk/pkg/k8sutil"
24+
"github.com/operator-framework/operator-sdk/pkg/sdk/log"
25+
2326
"github.com/prometheus/client_golang/prometheus/promhttp"
24-
"github.com/sirupsen/logrus"
2527
v1 "k8s.io/api/core/v1"
2628
"k8s.io/apimachinery/pkg/api/errors"
2729
"sigs.k8s.io/controller-runtime/pkg/client"
2830
"sigs.k8s.io/controller-runtime/pkg/client/config"
2931
)
3032

3133
// ExposeMetricsPort generate a Kubernetes Service to expose metrics port
32-
func ExposeMetricsPort() *v1.Service {
34+
func ExposeMetricsPort() (*v1.Service, error) {
3335
http.Handle("/"+k8sutil.PrometheusMetricsPortName, promhttp.Handler())
3436
go http.ListenAndServe(":"+strconv.Itoa(k8sutil.PrometheusMetricsPort), nil)
3537

3638
service, err := k8sutil.InitOperatorService()
3739
if err != nil {
38-
logrus.Errorf("failed to initialize service object for operator metrics: %v", err)
39-
return nil
40+
return nil, fmt.Errorf("failed to initialize service object for operator metrics: %v", err)
4041
}
4142
kubeconfig, err := config.GetConfig()
4243
if err != nil {
@@ -48,9 +49,9 @@ func ExposeMetricsPort() *v1.Service {
4849
}
4950
err = runtimeClient.Create(context.TODO(), service)
5051
if err != nil && !errors.IsAlreadyExists(err) {
51-
logrus.Errorf("failed to create service for operator metrics: %v", err)
52-
return nil
52+
return nil, fmt.Errorf("failed to create service for operator metrics: %v", err)
5353
}
54-
logrus.Infof("Metrics service %s created", service.Name)
55-
return service
54+
55+
log.Info(fmt.Sprintf("Metrics service %s created", service.Name), "ServiceName", service.Name)
56+
return service, nil
5657
}

0 commit comments

Comments
 (0)