8000 Add NIC metadata (name and version) to telemetry data (#5176) · nginx/kubernetes-ingress@2b02d07 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2b02d07

Browse files
authored
Add NIC metadata (name and version) to telemetry data (#5176)
1 parent b772659 commit 2b02d07

File tree

4 files changed

+80
-9
lines changed

4 files changed

+80
-9
lines changed

cmd/nginx-ingress/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ func main() {
205205
WatchNamespaceLabel: *watchNamespaceLabel,
206206
EnableTelemetryReporting: *enableTelemetryReporting,
207207
TelemetryReportingPeriod: *telemetryReportingPeriod,
208+
NICVersion: version,
208209
}
209210

210211
lbc := k8s.NewLoadBalancerController(lbcInput)

internal/k8s/controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ type NewLoadBalancerControllerInput struct {
212212
WatchNamespaceLabel string
213213
EnableTelemetryReporting bool
214214
TelemetryReportingPeriod string
215+
NICVersion string
215216
}
216217

217218
// NewLoadBalancerController creates a controller
@@ -351,6 +352,7 @@ func NewLoadBalancerController(input NewLoadBalancerControllerInput) *LoadBalanc
351352
CustomK8sClientReader: input.ConfClient,
352353
Period: 5 * time.Second,
353354
Configurator: lbc.configurator,
355+
Version: input.NICVersion,
354356
}
355357
lbc.telemetryChan = make(chan struct{})
356358
collector, err := telemetry.NewCollector(

internal/telemetry/collector.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ type CollectorConfig struct {
5353
Period time.Duration
5454

5555
Configurator *configs.Configurator
56+
57+
// Version represents NIC version.
58+
Version string
5659
}
5760

5861
// NewCollector takes 0 or more options and creates a new TraceReporter.
@@ -93,9 +96,15 @@ func (c *Collector) Collect(ctx context.Context) {
9396

9497
// BuildReport takes context and builds report from gathered telemetry data.
9598
func (c *Collector) BuildReport(ctx context.Context) (Data, error) {
99+
pm := ProjectMeta{
100+
Name: "NIC",
101+
Version: c.Config.Version,
102+
}
96103
d := Data{
97-
Arch: runtime.GOARCH,
104+
ProjectMeta: pm,
105+
Arch: runtime.GOARCH,
98106
}
107+
99108
var err error
100109

101110
if c.Config.Configurator != nil {

internal/telemetry/collector_test.go

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func TestCreateNewCollectorWithCustomExporter(t *testing.T) {
5252
cfg := telemetry.CollectorConfig{
5353
K8sClientReader: newTestClientset(),
5454
Configurator: newConfigurator(t),
55+
Version: "3.5.0",
5556
}
5657
c, err := telemetry.NewCollector(cfg, telemetry.WithExporter(exp))
5758
if err != nil {
@@ -60,6 +61,10 @@ func TestCreateNewCollectorWithCustomExporter(t *testing.T) {
6061
c.Collect(context.Background())
6162

6263
td := telemetry.Data{
64+
ProjectMeta: telemetry.ProjectMeta{
65+
Name: "NIC",
66+
Version: "3.5.0",
67+
},
6368
K8sVersion: "v1.29.2",
6469
Arch: runtime.GOARCH,
6570
}
@@ -78,6 +83,7 @@ func TestCollectNodeCountInClusterWithOneNode(t *testing.T) {
7883
cfg := telemetry.CollectorConfig{
7984
Configurator: newConfigurator(t),
8085
K8sClientReader: newTestClientset(node1),
86+
Version: "3.5.0",
8187
}
8288

8389
c, err := telemetry.NewCollector(cfg, telemetry.WithExporter(exp))
@@ -88,8 +94,8 @@ func TestCollectNodeCountInClusterWithOneNode(t *testing.T) {
8894

8995
td := telemetry.Data{
9096
ProjectMeta: telemetry.ProjectMeta{
91-
Name: "",
92-
Version: "",
97+
Name: "NIC",
98+
Version: "3.5.0",
9399
},
94100
NICResourceCounts: telemetry.NICResourceCounts{
95101
VirtualServers: 0,
@@ -115,6 +121,7 @@ func TestCollectNodeCountInClusterWithThreeNodes(t *testing.T) {
115121
cfg := telemetry.CollectorConfig{
116122
Configurator: newConfigurator(t),
117123
K8sClientReader: newTestClientset(node1, node2, node3),
124+
Version: "3.5.0",
118125
}
119126

120127
c, err := telemetry.NewCollector(cfg, telemetry.WithExporter(exp))
@@ -125,8 +132,8 @@ func TestCollectNodeCountInClusterWithThreeNodes(t *testing.T) {
125132

126133
td := telemetry.Data{
127134
ProjectMeta: telemetry.ProjectMeta{
128-
Name: "",
129-
Version: "",
135+
Name: "NIC",
136+
Version: "3.5.0",
130137
},
131138
NICResourceCounts: telemetry.NICResourceCounts{
132139
VirtualServers: 0,
@@ -152,6 +159,7 @@ func TestCollectClusterIDInClusterWithOneNode(t *testing.T) {
152159
cfg := telemetry.CollectorConfig{
153160
Configurator: newConfigurator(t),
154161
K8sClientReader: newTestClientset(node1, kubeNS),
162+
Version: "3.5.0",
155163
}
156164

157165
c, err := telemetry.NewCollector(cfg, telemetry.WithExporter(exp))
@@ -162,8 +170,8 @@ func TestCollectClusterIDInClusterWithOneNode(t *testing.T) {
162170

163171
td := telemetry.Data{
164172
ProjectMeta: telemetry.ProjectMeta{
165-
Name: "",
166-
Version: "",
173+
Name: "NIC",
174+
Version: "3.5.0",
167175
},
168176
NICResourceCounts: telemetry.NICResourceCounts{
169177
VirtualServers: 0,
@@ -190,6 +198,7 @@ func TestCollectK8sVersion(t *testing.T) {
190198
cfg := telemetry.CollectorConfig{
191199
Configurator: newConfigurator(t),
192200
K8sClientReader: newTestClientset(node1, kubeNS),
201+
Version: "3.5.0",
193202
}
194203

195204
c, err := telemetry.NewCollector(cfg, telemetry.WithExporter(exp))
@@ -200,8 +209,8 @@ func TestCollectK8sVersion(t *testing.T) {
200209

201210
td := telemetry.Data{
202211
ProjectMeta: telemetry.ProjectMeta{
203-
Name: "",
204-
Version: "",
212+
Name: "NIC",
213+
Version: "3.5.0",
205214
},
206215
NICResourceCounts: telemetry.NICResourceCounts{
207216
VirtualServers: 0,
@@ -233,13 +242,21 @@ func TestCountVirtualServers(t *testing.T) {
233242
{
234243
testName: "Create and delete 1 VirtualServer",
235244
expectedTraceDataOnAdd: telemetry.Data{
245+
ProjectMeta: telemetry.ProjectMeta{
246+
Name: "NIC",
247+
Version: "3.5.0",
248+
},
236249
NICResourceCounts: telemetry.NICResourceCounts{
237250
VirtualServers: 1,
238251
},
239252
K8sVersion: "v1.29.2",
240253
Arch: runtime.GOARCH,
241254
},
242255
expectedTraceDataOnDelete: telemetry.Data{
256+
ProjectMeta: telemetry.ProjectMeta{
257+
Name: "NIC",
258+
Version: "3.5.0",
259+
},
243260
NICResourceCounts: telemetry.NICResourceCounts{
244261
VirtualServers: 0,
245262
},
@@ -262,13 +279,21 @@ func TestCountVirtualServers(t *testing.T) {
262279
{
263280
testName: "Create 2 VirtualServers and delete 2",
264281
expectedTraceDataOnAdd: telemetry.Data{
282+
ProjectMeta: telemetry.ProjectMeta{
283+
Name: "NIC",
284+
Version: "3.5.0",
285+
},
265286
NICResourceCounts: telemetry.NICResourceCounts{
266287
VirtualServers: 2,
267288
},
268289
K8sVersion: "v1.29.2",
269290
Arch: runtime.GOARCH,
270291
},
271292
expectedTraceDataOnDelete: telemetry.Data{
293+
ProjectMeta: telemetry.ProjectMeta{
294+
Name: "NIC",
295+
Version: "3.5.0",
296+
},
272297
NICResourceCounts: telemetry.NICResourceCounts{
273298
VirtualServers: 0,
274299
},
@@ -300,13 +325,21 @@ func TestCountVirtualServers(t *testing.T) {
300325
{
301326
testName: "Create 2 VirtualServers and delete 1",
302327
expectedTraceDataOnAdd: telemetry.Data{
328+
ProjectMeta: telemetry.ProjectMeta{
329+
Name: "NIC",
330+
Version: "3.5.0",
331+
},
303332
NICResourceCounts: telemetry.NICResourceCounts{
304333
VirtualServers: 2,
305334
},
306335
K8sVersion: "v1.29.2",
307336
Arch: runtime.GOARCH,
308337
},
309338
expectedTraceDataOnDelete: telemetry.Data{
339+
ProjectMeta: telemetry.ProjectMeta{
340+
Name: "NIC",
341+
Version: "3.5.0",
342+
},
310343
NICResourceCounts: telemetry.NICResourceCounts{
311344
VirtualServers: 1,
312345
},
@@ -343,6 +376,7 @@ func TestCountVirtualServers(t *testing.T) {
343376
c, err := telemetry.NewCollector(telemetry.CollectorConfig{
344377
K8sClientReader: newTestClientset(dummyKubeNS),
345378
Configurator: configurator,
379+
Version: "3.5.0",
346380
})
347381
if err != nil {
348382
t.Fatal(err)
@@ -397,13 +431,21 @@ func TestCountTransportServers(t *testing.T) {
397431
{
398432
testName: "Create and delete 1 TransportServer",
399433
expectedTraceDataOnAdd: telemetry.Data{
434+
ProjectMeta: telemetry.ProjectMeta{
435+
Name: "NIC",
436+
Version: "3.5.0",
437+
},
400438
NICResourceCounts: telemetry.NICResourceCounts{
401439
TransportServers: 1,
402440
},
403441
K8sVersion: "v1.29.2",
404442
Arch: runtime.GOARCH,
405443
},
406444
expectedTraceDataOnDelete: telemetry.Data{
445+
ProjectMeta: telemetry.ProjectMeta{
446+
Name: "NIC",
447+
Version: "3.5.0",
448+
},
407449
NICResourceCounts: telemetry.NICResourceCounts{
408450
TransportServers: 0,
409451
},
@@ -430,13 +472,21 @@ func TestCountTransportServers(t *testing.T) {
430472
{
431473
testName: "Create 2 and delete 2 TransportServer",
432474
expectedTraceDataOnAdd: telemetry.Data{
475+
ProjectMeta: telemetry.ProjectMeta{
476+
Name: "NIC",
477+
Version: "3.5.0",
478+
},
433479
NICResourceCounts: telemetry.NICResourceCounts{
434480
TransportServers: 2,
435481
},
436482
K8sVersion: "v1.29.2",
437483
Arch: runtime.GOARCH,
438484
},
439485
expectedTraceDataOnDelete: telemetry.Data{
486+
ProjectMeta: telemetry.ProjectMeta{
487+
Name: "NIC",
488+
Version: "3.5.0",
489+
},
440490
NICResourceCounts: telemetry.NICResourceCounts{
441491
TransportServers: 0,
442492
},
@@ -476,13 +526,21 @@ func TestCountTransportServers(t *testing.T) {
476526
{
477527
testName: "Create 2 and delete 1 TransportServer",
478528
expectedTraceDataOnAdd: telemetry.Data{
529+
ProjectMeta: telemetry.ProjectMeta{
530+
Name: "NIC",
531+
Version: "3.5.0",
532+
},
479533
NICResourceCounts: telemetry.NICResourceCounts{
480534
TransportServers: 2,
481535
},
482536
K8sVersion: "v1.29.2",
483537
Arch: runtime.GOARCH,
484538
},
485539
expectedTraceDataOnDelete: telemetry.Data{
540+
ProjectMeta: telemetry.ProjectMeta{
541+
Name: "NIC",
542+
Version: "3.5.0",
543+
},
486544
NICResourceCounts: telemetry.NICResourceCounts{
487545
TransportServers: 1,
488546
},
@@ -527,6 +585,7 @@ func TestCountTransportServers(t *testing.T) {
527585
c, err := telemetry.NewCollector(telemetry.CollectorConfig{
528586
K8sClientReader: newTestClientset(dummyKubeNS),
529587
Configurator: configurator,
588+
Version: "3.5.0",
530589
})
531590
if err != nil {
532591
t.Fatal(err)

0 commit comments

Comments
 (0)
0