Skip to content

Commit dba8b5c

Browse files
Aritra Basusknat
authored andcommitted
fix lint errors
Signed-off-by: Aritra Basu <[email protected]>
1 parent 4929777 commit dba8b5c

File tree

1 file changed

+78
-70
lines changed

1 file changed

+78
-70
lines changed

calico-vpp-agent/prometheus/prometheus.go

Lines changed: 78 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -85,20 +85,20 @@ func NewPrometheusServer(vpp *vpplink.VppLink, log *logrus.Entry) *PrometheusSer
8585

8686
func cleanVppIfStatName(vppStatName string) string {
8787
vppStatName = strings.TrimPrefix(vppStatName, "/if/")
88-
vppStatName = strings.Replace(vppStatName, "-", "_", -1)
88+
vppStatName = strings.ReplaceAll(vppStatName, "-", "_")
8989
return vppStatName
9090
}
9191

9292
func cleanVppTCPStatName(vppStatName string, prefix string) string {
9393
vppStatName = strings.TrimPrefix(vppStatName, prefix)
94-
vppStatName = strings.Replace(vppStatName, "-", "_", -1)
95-
vppStatName = strings.Replace(vppStatName, "/", "_", -1)
94+
vppStatName = strings.ReplaceAll(vppStatName, "-", "_")
95+
vppStatName = strings.ReplaceAll(vppStatName, "/", "_")
9696
return vppStatName
9797
}
9898

9999
func cleanVppSessionStatName(vppStatName string) string {
100100
vppStatName = strings.TrimPrefix(vppStatName, "/sys/session/")
101-
vppStatName = strings.Replace(vppStatName, "/", "_", -1)
101+
vppStatName = strings.ReplaceAll(vppStatName, "/", "_")
102102
return vppStatName
103103
}
104104

@@ -107,10 +107,10 @@ const (
107107
UnitBytes = "bytes"
108108
)
109109

110-
func (self *PrometheusServer) exportMetrics() error {
111-
ifStats, err := self.statsclient.DumpStats("/if/")
110+
func (p *PrometheusServer) exportMetrics() error {
111+
ifStats, err := p.statsclient.DumpStats("/if/")
112112
if err != nil {
113-
self.log.Errorf("Error running statsclient.DumpStats for Interface stats %v", err)
113+
p.log.Errorf("Error running statsclient.DumpStats for Interface stats %v", err)
114114
return nil
115115
}
116116
var ifNames adapter.NameStat
@@ -121,79 +121,79 @@ func (self *PrometheusServer) exportMetrics() error {
121121
}
122122
}
123123

124-
self.lock.Lock()
125-
defer self.lock.Unlock()
124+
p.lock.Lock()
125+
defer p.lock.Unlock()
126126

127127
// Export Interface stats
128128
for _, vppStat := range ifStats {
129129
switch values := vppStat.Data.(type) {
130130
case adapter.SimpleCounterStat:
131-
self.exportInterfaceSimpleCounterStat(string(vppStat.Name), ifNames, values)
131+
p.exportInterfaceSimpleCounterStat(string(vppStat.Name), ifNames, values)
132132
case adapter.CombinedCounterStat:
133-
self.exportInterfaceCombinedCounterStat(string(vppStat.Name)+"_packets", ifNames, UnitPackets, values)
134-
self.exportInterfaceCombinedCounterStat(string(vppStat.Name)+"_bytes", ifNames, UnitBytes, values)
133+
p.exportInterfaceCombinedCounterStat(string(vppStat.Name)+"_packets", ifNames, UnitPackets, values)
134+
p.exportInterfaceCombinedCounterStat(string(vppStat.Name)+"_bytes", ifNames, UnitBytes, values)
135135
}
136136
}
137137

138138
// Export TCP stats
139-
tcpStats, err := self.statsclient.DumpStats("/sys/tcp")
139+
tcpStats, err := p.statsclient.DumpStats("/sys/tcp")
140140
if err != nil {
141-
self.log.Errorf("Error running statsclient.DumpStats for TCP stats %v", err)
141+
p.log.Errorf("Error running statsclient.DumpStats for TCP stats %v", err)
142142
return nil
143143
}
144144
for _, vppStat := range tcpStats {
145145
switch values := vppStat.Data.(type) {
146146
case adapter.SimpleCounterStat:
147-
self.exportTCPSimpleCounterStat(cleanVppTCPStatName(string(vppStat.Name), "/sys/"), values)
147+
p.exportTCPSimpleCounterStat(cleanVppTCPStatName(string(vppStat.Name), "/sys/"), values)
148148
}
149149
}
150150

151151
// Export TCP4 error stats
152-
tcp4ErrStats, err := self.statsclient.DumpStats("/err/tcp4")
152+
tcp4ErrStats, err := p.statsclient.DumpStats("/err/tcp4")
153153
if err != nil {
154-
self.log.Errorf("Error running statsclient.DumpStats for TCP4 error stats %v", err)
154+
p.log.Errorf("Error running statsclient.DumpStats for TCP4 error stats %v", err)
155155
return nil
156156
}
157157
for _, vppStat := range tcp4ErrStats {
158158
switch values := vppStat.Data.(type) {
159159
case adapter.SimpleCounterStat:
160-
self.exportTCPSimpleCounterStat(cleanVppTCPStatName(string(vppStat.Name), "/err/"), values)
160+
p.exportTCPSimpleCounterStat(cleanVppTCPStatName(string(vppStat.Name), "/err/"), values)
161161
}
162162
}
163163

164164
// Export TCP6 error stats
165-
tcp6ErrStats, err := self.statsclient.DumpStats("/err/tcp6")
165+
tcp6ErrStats, err := p.statsclient.DumpStats("/err/tcp6")
166166
if err != nil {
167-
self.log.Errorf("Error running statsclient.DumpStats for TCP6 error stats %v", err)
167+
p.log.Errorf("Error running statsclient.DumpStats for TCP6 error stats %v", err)
168168
return nil
169169
}
170170
for _, vppStat := range tcp6ErrStats {
171171
switch values := vppStat.Data.(type) {
172172
case adapter.SimpleCounterStat:
173-
self.exportTCPSimpleCounterStat(cleanVppTCPStatName(string(vppStat.Name), "/err/"), values)
173+
p.exportTCPSimpleCounterStat(cleanVppTCPStatName(string(vppStat.Name), "/err/"), values)
174174
}
175175
}
176176

177177
// Export Session stats
178-
sessionStats, err := self.statsclient.DumpStats("/sys/session")
178+
sessionStats, err := p.statsclient.DumpStats("/sys/session")
179179
if err != nil {
180-
self.log.Errorf("Error running statsclient.DumpStats for Session stats %v", err)
180+
p.log.Errorf("Error running statsclient.DumpStats for Session stats %v", err)
181181
return nil
182182
}
183183
for _, vppStat := range sessionStats {
184184
switch values := vppStat.Data.(type) {
185185
case adapter.SimpleCounterStat:
186-
self.exportSessionSimpleCounter(string(vppStat.Name), values)
186+
p.exportSessionSimpleCounter(string(vppStat.Name), values)
187187
case adapter.ScalarStat:
188188
// ScalarStat is a single value, not per-worker
189-
self.exportSessionScalarStat(string(vppStat.Name), int64(values))
189+
p.exportSessionScalarStat(string(vppStat.Name), int64(values))
190190
}
191191
}
192192

193193
return nil
194194
}
195195

196-
func (self *PrometheusServer) exportInterfaceCombinedCounterStat(name string, ifNames adapter.NameStat, unit string, values adapter.CombinedCounterStat) {
196+
func (p *PrometheusServer) exportInterfaceCombinedCounterStat(name string, ifNames adapter.NameStat, unit string, values adapter.CombinedCounterStat) {
197197
metric := &metricspb.Metric{
198198
MetricDescriptor: &metricspb.MetricDescriptor{
199199
Name: cleanVppIfStatName(name),
@@ -212,8 +212,8 @@ func (self *PrometheusServer) exportInterfaceCombinedCounterStat(name string, if
212212
}
213213
for worker, perWorkerValues := range values {
214214
for swIfIndex, counter := range perWorkerValues {
215-
self.log.Warnf("Export for IF=%d", swIfIndex)
216-
pod := self.podInterfacesDetailsBySwifIndex[uint32(swIfIndex)]
215+
p.log.Warnf("Export for IF=%d", swIfIndex)
216+
pod := p.podInterfacesDetailsBySwifIndex[uint32(swIfIndex)]
217217
vppIfName := ""
218218
if swIfIndex < len(ifNames) {
219219
vppIfName = string(ifNames[swIfIndex])
@@ -238,18 +238,18 @@ func (self *PrometheusServer) exportInterfaceCombinedCounterStat(name string, if
238238
})
239239
}
240240
}
241-
err := self.exporter.ExportMetric(
241+
err := p.exporter.ExportMetric(
242242
context.Background(),
243243
nil, /* node */
244244
nil, /* resource */
245245
metric,
246246
)
247247
if err != nil {
248-
self.log.Errorf("Error prometheus exporter.ExportMetric %v", err)
248+
p.log.Errorf("Error prometheus exporter.ExportMetric %v", err)
249249
}
250250
}
251251

252-
func (self *PrometheusServer) exportInterfaceSimpleCounterStat(name string, ifNames adapter.NameStat, values adapter.SimpleCounterStat) {
252+
func (p *PrometheusServer) exportInterfaceSimpleCounterStat(name string, ifNames adapter.NameStat, values adapter.SimpleCounterStat) {
253253
metric := &metricspb.Metric{
254254
MetricDescriptor: &metricspb.MetricDescriptor{
255255
Name: cleanVppIfStatName(name),
@@ -267,7 +267,7 @@ func (self *PrometheusServer) exportInterfaceSimpleCounterStat(name string, ifNa
267267
}
268268
for worker, perWorkerValues := range values {
269269
for swIfIndex, counter := range perWorkerValues {
270-
pod := self.podInterfacesDetailsBySwifIndex[uint32(swIfIndex)]
270+
pod := p.podInterfacesDetailsBySwifIndex[uint32(swIfIndex)]
271271
vppIfName := ""
272272
if swIfIndex < len(ifNames) {
273273
vppIfName = string(ifNames[swIfIndex])
@@ -290,18 +290,18 @@ func (self *PrometheusServer) exportInterfaceSimpleCounterStat(name string, ifNa
290290
})
291291
}
292292
}
293-
err := self.exporter.ExportMetric(
293+
err := p.exporter.ExportMetric(
294294
context.Background(),
295295
nil, /* node */
296296
nil, /* resource */
297297
metric,
298298
)
299299
if err != nil {
300-
self.log.Errorf("Error prometheus exporter.ExportMetric %v", err)
300+
p.log.Errorf("Error prometheus exporter.ExportMetric %v", err)
301301
}
302302
}
303303

304-
func (self *PrometheusServer) exportTCPSimpleCounterStat(name string, values adapter.SimpleCounterStat) {
304+
func (p *PrometheusServer) exportTCPSimpleCounterStat(name string, values adapter.SimpleCounterStat) {
305305
metric := &metricspb.Metric{
306306
MetricDescriptor: &metricspb.MetricDescriptor{
307307
Name: name,
@@ -330,18 +330,18 @@ func (self *PrometheusServer) exportTCPSimpleCounterStat(name string, values ada
330330
}
331331
}
332332

333-
err := self.exporter.ExportMetric(
333+
err := p.exporter.ExportMetric(
334334
context.Background(),
335335
nil, /* node */
336336
nil, /* resource */
337337
metric,
338338
)
339339
if err != nil {
340-
self.log.Errorf("Error prometheus exporter.ExportMetric for TCP %v", err)
340+
p.log.Errorf("Error prometheus exporter.ExportMetric for TCP %v", err)
341341
}
342342
}
343343

344-
func (self *PrometheusServer) exportSessionSimpleCounter(name string, values adapter.SimpleCounterStat) {
344+
func (p *PrometheusServer) exportSessionSimpleCounter(name string, values adapter.SimpleCounterStat) {
345345
metric := &metricspb.Metric{
346346
MetricDescriptor: &metricspb.MetricDescriptor{
347347
Name: cleanVppSessionStatName(name),
@@ -370,19 +370,19 @@ func (self *PrometheusServer) exportSessionSimpleCounter(name string, values ada
370370
}
371371
}
372372

373-
err := self.exporter.ExportMetric(
373+
err := p.exporter.ExportMetric(
374374
context.Background(),
375375
nil, /* node */
376376
nil, /* resource */
377377
metric,
378378
)
379379
if err != nil {
380-
self.log.Errorf("Error prometheus exporter.ExportMetric for Session %v", err)
380+
p.log.Errorf("Error prometheus exporter.ExportMetric for Session %v", err)
381381
}
382382
}
383383

384-
func (self *PrometheusServer) exportSessionScalarStat(name string, value int64) {
385-
err := self.exporter.ExportMetric(
384+
func (p *PrometheusServer) exportSessionScalarStat(name string, value int64) {
385+
err := p.exporter.ExportMetric(
386386
context.Background(),
387387
nil, /* node */
388388
nil, /* resource */
@@ -404,83 +404,91 @@ func (self *PrometheusServer) exportSessionScalarStat(name string, value int64)
404404
},
405405
)
406406
if err != nil {
407-
self.log.Errorf("Error prometheus exporter.ExportMetric for Session %v", err)
407+
p.log.Errorf("Error prometheus exporter.ExportMetric for Session %v", err)
408408
}
409409
}
410410

411-
func (self *PrometheusServer) ServePrometheus(t *tomb.Tomb) error {
411+
func (p *PrometheusServer) ServePrometheus(t *tomb.Tomb) error {
412412
if !(*config.GetCalicoVppFeatureGates().PrometheusEnabled) {
413413
return nil
414414
}
415-
self.log.Infof("Serve() Prometheus exporter")
415+
p.log.Infof("Serve() Prometheus exporter")
416416
go func() {
417417
for t.Alive() {
418418
/* Note: we will only receive events we ask for when registering the chan */
419-
evt := <-self.channel
419+
evt := <-p.channel
420420
switch evt.Type {
421421
case common.PodAdded:
422422
podSpec, ok := evt.New.(*storage.LocalPodSpec)
423423
if !ok {
424-
self.log.Errorf("evt.New is not a *storage.LocalPodSpec %v", evt.New)
424+
p.log.Errorf("evt.New is not a *storage.LocalPodSpec %v", evt.New)
425425
continue
426426
}
427-
splittedWorkloadId := strings.SplitN(podSpec.WorkloadID, "/", 2)
428-
if len(splittedWorkloadId) != 2 {
427+
splittedWorkloadID := strings.SplitN(podSpec.WorkloadID, "/", 2)
428+
if len(splittedWorkloadID) != 2 {
429429
continue
430430
}
431-
self.lock.Lock()
431+
p.lock.Lock()
432432
if podSpec.MemifSwIfIndex != vpplink.InvalidSwIfIndex {
433433
memifName := podSpec.InterfaceName
434434
if podSpec.NetworkName == "" {
435435
memifName = "vpp/memif-" + podSpec.InterfaceName
436436
}
437-
self.podInterfacesDetailsBySwifIndex[podSpec.MemifSwIfIndex] = podInterfaceDetails{
438-
podNamespace: splittedWorkloadId[0],
439-
podName: splittedWorkloadId[1],
437+
p.podInterfacesDetailsBySwifIndex[podSpec.MemifSwIfIndex] = podInterfaceDetails{
438+
podNamespace: splittedWorkloadID[0],
439+
podName: splittedWorkloadID[1],
440440
interfaceName: memifName,
441441
}
442442
}
443443
if podSpec.TunTapSwIfIndex != vpplink.InvalidSwIfIndex {
444-
self.podInterfacesDetailsBySwifIndex[podSpec.TunTapSwIfIndex] = podInterfaceDetails{
445-
podNamespace: splittedWorkloadId[0],
446-
podName: splittedWorkloadId[1],
444+
p.podInterfacesDetailsBySwifIndex[podSpec.TunTapSwIfIndex] = podInterfaceDetails{
445+
podNamespace: splittedWorkloadID[0],
446+
podName: splittedWorkloadID[1],
447447
interfaceName: podSpec.InterfaceName,
448448
}
449449
}
450-
self.podInterfacesByKey[podSpec.Key()] = *podSpec
451-
self.lock.Unlock()
450+
p.podInterfacesByKey[podSpec.Key()] = *podSpec
451+
p.lock.Unlock()
452452
case common.PodDeleted:
453453
podSpec, ok := evt.Old.(*storage.LocalPodSpec)
454454
if !ok {
455-
self.log.Errorf("evt.Old is not a *storage.LocalPodSpec %v", evt.Old)
455+
p.log.Errorf("evt.Old is not a *storage.LocalPodSpec %v", evt.Old)
456456
continue
457457
}
458-
self.lock.Lock()
459-
initialPod := self.podInterfacesByKey[podSpec.Key()]
460-
delete(self.podInterfacesByKey, initialPod.Key())
458+
p.lock.Lock()
459+
initialPod := p.podInterfacesByKey[podSpec.Key()]
460+
delete(p.podInterfacesByKey, initialPod.Key())
461461
if podSpec.MemifSwIfIndex != vpplink.InvalidSwIfIndex {
462-
delete(self.podInterfacesDetailsBySwifIndex, initialPod.MemifSwIfIndex)
462+
delete(p.podInterfacesDetailsBySwifIndex, initialPod.MemifSwIfIndex)
463463
}
464464
if podSpec.TunTapSwIfIndex != vpplink.InvalidSwIfIndex {
465-
delete(self.podInterfacesDetailsBySwifIndex, initialPod.TunTapSwIfIndex)
465+
delete(p.podInterfacesDetailsBySwifIndex, initialPod.TunTapSwIfIndex)
466466
}
467-
self.lock.Unlock()
467+
p.lock.Unlock()
468468
}
469469
}
470470
}()
471-
err := self.statsclient.Connect()
471+
err := p.statsclient.Connect()
472472
if err != nil {
473473
return errors.Wrap(err, "could not connect statsclient")
474474
}
475475

476-
go self.httpServer.ListenAndServe()
476+
go func() {
477+
err := p.httpServer.ListenAndServe()
478+
if err != nil && err != http.ErrServerClosed {
479+
p.log.Errorf("HTTP server error: %v", err)
480+
}
481+
}()
477482
ticker := time.NewTicker(*config.GetCalicoVppInitialConfig().PrometheusRecordMetricInterval)
478483
for ; t.Alive(); <-ticker.C {
479-
self.exportMetrics()
484+
err := p.exportMetrics()
485+
if err != nil {
486+
p.log.Errorf("Error exporting metrics: %v", err)
487+
}
480488
}
481489
ticker.Stop()
482-
self.log.Warn("Prometheus Server returned")
483-
err = self.httpServer.Shutdown(context.Background())
490+
p.log.Warn("Prometheus Server returned")
491+
err = p.httpServer.Shutdown(context.Background())
484492
if err != nil {
485493
return errors.Wrap(err, "Could not shutdown http server")
486494
}

0 commit comments

Comments
 (0)