Skip to content

Commit d422f1a

Browse files
authored
Merge pull request #2146 from kube-logging/fix/fluent-monitorServiceMetrics-nil-deref
fix: apply ServiceMonitor default values only when metrics are enabled
2 parents 4045dd8 + 2452841 commit d422f1a

File tree

3 files changed

+34
-30
lines changed

3 files changed

+34
-30
lines changed

pkg/resources/fluentbit/service.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,20 @@ func (r *Reconciler) serviceMetrics() (runtime.Object, reconciler.DesiredState,
5252
}
5353

5454
func (r *Reconciler) monitorServiceMetrics() (runtime.Object, reconciler.DesiredState, error) {
55-
var SampleLimit uint64 = 0
5655
objectMetadata := r.FluentbitObjectMeta(fluentbitServiceName + "-metrics")
5756

58-
if r.fluentbitSpec.Metrics.ServiceMonitorConfig.Scheme == "" {
59-
r.fluentbitSpec.Metrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
60-
}
61-
6257
if r.fluentbitSpec.Metrics != nil && r.fluentbitSpec.Metrics.IsEnabled() && r.fluentbitSpec.Metrics.ServiceMonitor {
58+
if r.fluentbitSpec.Metrics.ServiceMonitorConfig.Scheme == "" {
59+
r.fluentbitSpec.Metrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
60+
}
61+
6362
if r.fluentbitSpec.Metrics.ServiceMonitorConfig.AdditionalLabels != nil {
6463
for k, v := range r.fluentbitSpec.Metrics.ServiceMonitorConfig.AdditionalLabels {
6564
objectMetadata.Labels[k] = v
6665
}
6766
}
67+
68+
var SampleLimit uint64 = 0
6869
return &v1.ServiceMonitor{
6970
ObjectMeta: objectMetadata,
7071
Spec: v1.ServiceMonitorSpec{
@@ -128,15 +129,16 @@ func (r *Reconciler) serviceBufferMetrics() (runtime.Object, reconciler.DesiredS
128129
}
129130

130131
func (r *Reconciler) monitorBufferServiceMetrics() (runtime.Object, reconciler.DesiredState, error) {
131-
var SampleLimit uint64 = 0
132132
objectMetadata := r.FluentbitObjectMeta(fluentbitServiceName + "-buffer-metrics")
133133

134-
if r.fluentbitSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme == "" {
135-
r.fluentbitSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
136-
}
137-
138134
if r.fluentbitSpec.BufferVolumeMetrics != nil && r.fluentbitSpec.BufferVolumeMetrics.IsEnabled() && r.fluentbitSpec.BufferVolumeMetrics.ServiceMonitor {
135+
if r.fluentbitSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme == "" {
136+
r.fluentbitSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
137+
}
138+
139139
objectMetadata.Labels = util.MergeLabels(objectMetadata.Labels, r.fluentbitSpec.BufferVolumeMetrics.ServiceMonitorConfig.AdditionalLabels)
140+
141+
var SampleLimit uint64 = 0
140142
return &v1.ServiceMonitor{
141143
ObjectMeta: objectMetadata,
142144
Spec: v1.ServiceMonitorSpec{

pkg/resources/fluentd/service.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,20 +102,20 @@ func (r *Reconciler) serviceMetrics() (runtime.Object, reconciler.DesiredState,
102102
}
103103

104104
func (r *Reconciler) monitorServiceMetrics() (runtime.Object, reconciler.DesiredState, error) {
105-
var SampleLimit uint64 = 0
106105
objectMetadata := r.FluentdObjectMeta(ServiceName+"-metrics", ComponentFluentd)
107106

108-
if r.fluentdSpec.Metrics.ServiceMonitorConfig.Scheme == "" {
109-
r.fluentdSpec.Metrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
110-
}
111-
112107
if r.fluentdSpec.Metrics != nil && r.fluentdSpec.Metrics.IsEnabled() && r.fluentdSpec.Metrics.ServiceMonitor {
108+
if r.fluentdSpec.Metrics.ServiceMonitorConfig.Scheme == "" {
109+
r.fluentdSpec.Metrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
110+
}
111+
113112
if r.fluentdSpec.Metrics.ServiceMonitorConfig.AdditionalLabels != nil {
114113
for k, v := range r.fluentdSpec.Metrics.ServiceMonitorConfig.AdditionalLabels {
115114
objectMetadata.Labels[k] = v
116115
}
117116
}
118117

118+
var SampleLimit uint64 = 0
119119
return &v1.ServiceMonitor{
120120
ObjectMeta: objectMetadata,
121121
Spec: v1.ServiceMonitorSpec{
@@ -183,19 +183,20 @@ func (r *Reconciler) serviceBufferMetrics() (runtime.Object, reconciler.DesiredS
183183
}
184184

185185
func (r *Reconciler) monitorBufferServiceMetrics() (runtime.Object, reconciler.DesiredState, error) {
186-
var SampleLimit uint64 = 0
187186
objectMetadata := r.FluentdObjectMeta(ServiceName+"-buffer-metrics", ComponentFluentd)
188187

189-
if r.fluentdSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme == "" {
190-
r.fluentdSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
191-
}
192-
193188
if r.fluentdSpec.BufferVolumeMetrics != nil && r.fluentdSpec.BufferVolumeMetrics.IsEnabled() && r.fluentdSpec.BufferVolumeMetrics.ServiceMonitor {
189+
if r.fluentdSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme == "" {
190+
r.fluentdSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
191+
}
192+
194193
if r.fluentdSpec.BufferVolumeMetrics.ServiceMonitorConfig.AdditionalLabels != nil {
195194
for k, v := range r.fluentdSpec.BufferVolumeMetrics.ServiceMonitorConfig.AdditionalLabels {
196195
objectMetadata.Labels[k] = v
197196
}
198197
}
198+
199+
var SampleLimit uint64 = 0
199200
return &v1.ServiceMonitor{
200201
ObjectMeta: objectMetadata,
201202
Spec: v1.ServiceMonitorSpec{

pkg/resources/syslogng/service.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,20 +102,20 @@ func (r *Reconciler) serviceMetrics() (runtime.Object, reconciler.DesiredState,
102102
}
103103

104104
func (r *Reconciler) monitorServiceMetrics() (runtime.Object, reconciler.DesiredState, error) {
105-
var SampleLimit uint64 = 0
106105
objectMetadata := r.SyslogNGObjectMeta(ServiceName+"-metrics", ComponentSyslogNG)
107106

108-
if r.syslogNGSpec.Metrics.ServiceMonitorConfig.Scheme == "" {
109-
r.syslogNGSpec.Metrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
110-
}
111-
112107
if r.syslogNGSpec.Metrics != nil && r.syslogNGSpec.Metrics.IsEnabled() && r.syslogNGSpec.Metrics.ServiceMonitor {
108+
if r.syslogNGSpec.Metrics.ServiceMonitorConfig.Scheme == "" {
109+
r.syslogNGSpec.Metrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
110+
}
111+
113112
if r.syslogNGSpec.Metrics.ServiceMonitorConfig.AdditionalLabels != nil {
114113
for k, v := range r.syslogNGSpec.Metrics.ServiceMonitorConfig.AdditionalLabels {
115114
objectMetadata.Labels[k] = v
116115
}
117116
}
118117

118+
var SampleLimit uint64 = 0
119119
return &v1.ServiceMonitor{
120120
ObjectMeta: objectMetadata,
121121
Spec: v1.ServiceMonitorSpec{
@@ -183,19 +183,20 @@ func (r *Reconciler) serviceBufferMetrics() (runtime.Object, reconciler.DesiredS
183183
}
184184

185185
func (r *Reconciler) monitorBufferServiceMetrics() (runtime.Object, reconciler.DesiredState, error) {
186-
var SampleLimit uint64 = 0
187186
objectMetadata := r.SyslogNGObjectMeta(ServiceName+"-buffer-metrics", ComponentSyslogNG)
188187

189-
if r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme == "" {
190-
r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
191-
}
192-
193188
if r.syslogNGSpec.BufferVolumeMetrics != nil && r.syslogNGSpec.BufferVolumeMetrics.IsEnabled() && r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitor {
189+
if r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme == "" {
190+
r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitorConfig.Scheme = kubetool.To(v1.SchemeHTTP).String()
191+
}
192+
194193
if r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitorConfig.AdditionalLabels != nil {
195194
for k, v := range r.syslogNGSpec.BufferVolumeMetrics.ServiceMonitorConfig.AdditionalLabels {
196195
objectMetadata.Labels[k] = v
197196
}
198197
}
198+
199+
var SampleLimit uint64 = 0
199200
return &v1.ServiceMonitor{
200201
ObjectMeta: objectMetadata,
201202
Spec: v1.ServiceMonitorSpec{

0 commit comments

Comments
 (0)