diff --git a/CHANGELOG.md b/CHANGELOG.md index 9901c7d4a1..43a3b25f53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,8 @@ Adding a new version? You'll need three changes: - Get rid of deprecation warning in logs for unsupported label `global: true` for `KongPlugin`, it'll be treated as any other label without a special meaning. [#4737](https://github.com/Kong/kubernetes-ingress-controller/pull/4737) +- Telemetry now reports the router flavor. + [#4762](https://github.com/Kong/kubernetes-ingress-controller/pull/4762) [KIC Annotations reference]: https://docs.konghq.com/kubernetes-ingress-controller/latest/references/annotations/ diff --git a/internal/manager/telemetry/reports.go b/internal/manager/telemetry/reports.go index 60a1e7ec89..5208e930c9 100644 --- a/internal/manager/telemetry/reports.go +++ b/internal/manager/telemetry/reports.go @@ -78,11 +78,17 @@ func SetupAnonymousReports( if !ok { return nil, fmt.Errorf("malformed database configuration found in Kong client root") } + routerFlavor, ok := cfg["router_flavor"].(string) + if !ok { + // version to old to use router flavor, de facto traditional + routerFlavor = "traditional" + } fixedPayload := Payload{ "v": metadata.Release, "kv": kongVersion, "db": kongDB, + "rf": routerFlavor, "id": instanceIDProvider.GetID(), // universal unique identifier for this system } diff --git a/test/envtest/telemetry_test.go b/test/envtest/telemetry_test.go index 04624d7c7c..9c8e27554b 100644 --- a/test/envtest/telemetry_test.go +++ b/test/envtest/telemetry_test.go @@ -79,14 +79,14 @@ func TestTelemetry(t *testing.T) { waitTime = 3 * time.Second tickTime = 10 * time.Millisecond ) - require.Eventually(t, func() bool { + require.Eventuallyf(t, func() bool { select { case report := <-reportChan: return verifyTelemetryReport(t, k8sVersion, string(report)) case <-time.After(tickTime): return false } - }, waitTime, tickTime) + }, waitTime, tickTime, "telemetry report never matched expected value") } func configForEnvTestTelemetry(t *testing.T, envcfg *rest.Config, splunkEndpoint string, telemetryPeriod time.Duration) manager.Config { @@ -340,7 +340,8 @@ func verifyTelemetryReport(t *testing.T, k8sVersion *version.Info, report string for _, s := range []string{"id", "uptime"} { report, err = removeStanzaFromReport(report, s) if err != nil { - t.Logf("failed to remove stanza %q from report: %s", s, err) + // this normally happens during shutdown, when the report is an empty string + // no point in proceeding if so return false } } @@ -361,6 +362,7 @@ func verifyTelemetryReport(t *testing.T, k8sVersion *version.Info, report string "feature-rewriteuris=false;"+ "hn=%s;"+ "kv=3.3.0;"+ + "rf=traditional;"+ "v=NOT_SET;"+ "k8s_arch=%s;"+ "k8s_provider=UNKNOWN;"+