Skip to content

Commit 397a27b

Browse files
erikgbCopilot
andauthored
fix: add missing logging to metrics collector (#1587)
Co-authored-by: Copilot <[email protected]>
1 parent 73aa757 commit 397a27b

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.25.0
44

55
require (
66
github.com/distribution/reference v0.6.0
7+
github.com/go-logr/logr v1.4.3
78
github.com/go-viper/mapstructure/v2 v2.4.0
89
github.com/gohugoio/hashstructure v0.6.0
910
github.com/onsi/ginkgo/v2 v2.26.0
@@ -42,7 +43,6 @@ require (
4243
github.com/fsnotify/fsnotify v1.9.0 // indirect
4344
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
4445
github.com/go-errors/errors v1.5.1 // indirect
45-
github.com/go-logr/logr v1.4.3 // indirect
4646
github.com/go-logr/zapr v1.3.0 // indirect
4747
github.com/go-openapi/jsonpointer v0.22.0 // indirect
4848
github.com/go-openapi/jsonreference v0.21.1 // indirect

internal/metrics/collector.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"regexp"
66
"strings"
77

8+
"github.com/go-logr/logr"
89
openreportsv1alpha1 "github.com/openreports/reports-api/apis/openreports.io/v1alpha1"
910
"github.com/prometheus/client_golang/prometheus"
1011
"k8s.io/apimachinery/pkg/api/meta"
@@ -21,6 +22,9 @@ import (
2122
const (
2223
Namespace = "image_scanner"
2324
Subsystem = "container_image"
25+
26+
// LoggerName is the name used for the metrics collector logger.
27+
LoggerName = "metrics-collector"
2428
)
2529

2630
var (
@@ -47,6 +51,10 @@ type ImageMetricsCollector struct {
4751
client.Reader
4852
config.Config
4953

54+
// Log is the logger used for logging within the ImageMetricsCollector.
55+
// If unset, it defaults to a discard logger, disabling all logging output.
56+
Log logr.Logger
57+
5058
cisLabels cisLabels
5159
successDesc *prometheus.Desc
5260
issuesDesc *prometheus.Desc
@@ -59,6 +67,10 @@ type Manager interface {
5967
}
6068

6169
func (c *ImageMetricsCollector) SetupWithManager(mgr Manager) error {
70+
if c.Log.GetSink() == nil {
71+
c.Log = logr.Discard()
72+
}
73+
6274
labels := make(cisLabels, 0, len(c.MetricsLabels)+len(cisResourceLabels)+1)
6375

6476
if len(c.MetricsLabels) > 0 {
@@ -132,7 +144,7 @@ func (c ImageMetricsCollector) Collect(metrics chan<- prometheus.Metric) {
132144

133145
cisList := &stasv1alpha1.ContainerImageScanList{}
134146
if err := c.List(ctx, cisList, client.InNamespace("")); err != nil {
135-
// TODO: Log
147+
c.Log.Error(err, "Failed to list all ContainerImageScans")
136148
return
137149
}
138150

@@ -159,7 +171,7 @@ func (c ImageMetricsCollector) Collect(metrics chan<- prometheus.Metric) {
159171
if config.DefaultMutableFeatureGate.Enabled(feature.PolicyReport) {
160172
report := openreportsv1alpha1.Report{}
161173
if err := c.Get(ctx, client.ObjectKeyFromObject(&cis), &report); err != nil {
162-
// TODO: Log
174+
c.Log.Error(err, "Failed to get Report", "namespace", cis.Namespace, "name", cis.Name)
163175
continue
164176
}
165177

internal/metrics/collector_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var _ = Describe("ContainerImageScan Collector", func() {
2525
imageMetricsCollector = &ImageMetricsCollector{
2626
Reader: c,
2727
Config: config.Config{MetricsLabels: []string{"system.statnett.no/name", "app.kubernetes.io/name"}},
28+
Log: GinkgoLogr.WithName(LoggerName),
2829
}
2930
mgr := &MockManager{}
3031
mgr.EXPECT().Add(mock.Anything).Call.Return(nil)

internal/operator/operator.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ func (o Operator) Start(cfg config.Config) error {
265265
if err = (&metrics.ImageMetricsCollector{
266266
Reader: mgr.GetCache(),
267267
Config: cfg,
268+
Log: ctrl.Log.WithName(metrics.LoggerName),
268269
}).SetupWithManager(mgr); err != nil {
269270
return fmt.Errorf("unable to set up image metrics collector: %w", err)
270271
}

0 commit comments

Comments
 (0)