From 54e4f3c69f5ff608928748446886ea3523171567 Mon Sep 17 00:00:00 2001 From: Mritunjay Sharma Date: Thu, 18 Nov 2021 01:38:40 +0530 Subject: [PATCH 1/4] adds case to handle kubeletstats reciever to ignore endpoint Signed-off-by: Mritunjay Sharma --- pkg/collector/parser/receiver.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/collector/parser/receiver.go b/pkg/collector/parser/receiver.go index 2fcf0209b5..9cdd30b2e2 100644 --- a/pkg/collector/parser/receiver.go +++ b/pkg/collector/parser/receiver.go @@ -100,6 +100,11 @@ func singlePortFromConfigEndpoint(logger logr.Logger, name string, config map[in case name == "tcplog" || name == "udplog": endpoint = getAddressFromConfig(logger, name, listenAddressKey, config) + // in case of kubeletstats reciever, the endpoint is ignored + case name == "kubeletstats": + endpoint = nil + return nil + default: endpoint = getAddressFromConfig(logger, name, endpointKey, config) } From 2bbc9a5ea21ec554d450490d36920a6ca31d7eb0 Mon Sep 17 00:00:00 2001 From: Mritunjay Sharma Date: Wed, 1 Dec 2021 00:13:06 +0530 Subject: [PATCH 2/4] adds unit tests and fixes nil in receiver Signed-off-by: Mritunjay Sharma --- pkg/collector/parser/receiver.go | 5 +++-- pkg/collector/parser/receiver_test.go | 13 +++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/collector/parser/receiver.go b/pkg/collector/parser/receiver.go index 9cdd30b2e2..fb37ae9a56 100644 --- a/pkg/collector/parser/receiver.go +++ b/pkg/collector/parser/receiver.go @@ -100,9 +100,10 @@ func singlePortFromConfigEndpoint(logger logr.Logger, name string, config map[in case name == "tcplog" || name == "udplog": endpoint = getAddressFromConfig(logger, name, listenAddressKey, config) - // in case of kubeletstats reciever, the endpoint is ignored + // ignore kubeletstats receiver as it holds the field key endpoint, and it + // is a scraper, we only expose endpoint through k8s service objects for + // receivers that aren't scrapers. case name == "kubeletstats": - endpoint = nil return nil default: diff --git a/pkg/collector/parser/receiver_test.go b/pkg/collector/parser/receiver_test.go index 10252e801b..c515f17d72 100644 --- a/pkg/collector/parser/receiver_test.go +++ b/pkg/collector/parser/receiver_test.go @@ -98,6 +98,19 @@ func TestReceiverFailsWhenPortIsntString(t *testing.T) { assert.Nil(t, p) } +func TestReceiverFailsWhenNameIsKubeletStats(t *testing.T) { + // prepare + config := map[interface{}]interface{}{ + "name": "kubeletstats", + } + + // test + p := singlePortFromConfigEndpoint(logger, "myreceiver", config) + + // verify + assert.Nil(t, p) +} + func TestReceiverFallbackWhenNotRegistered(t *testing.T) { // test p := For(logger, "myreceiver", map[interface{}]interface{}{}) From 9f6410d8e0a17aabf71ffc1bf4b5777347a84094 Mon Sep 17 00:00:00 2001 From: Mritunjay Sharma Date: Thu, 9 Dec 2021 22:41:09 +0530 Subject: [PATCH 3/4] fixes in the tests Signed-off-by: Mritunjay Sharma --- pkg/collector/parser/receiver_test.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pkg/collector/parser/receiver_test.go b/pkg/collector/parser/receiver_test.go index c515f17d72..00387878eb 100644 --- a/pkg/collector/parser/receiver_test.go +++ b/pkg/collector/parser/receiver_test.go @@ -18,6 +18,7 @@ import ( "testing" "github.com/go-logr/logr" + "github.com/open-telemetry/opentelemetry-operator/pkg/collector/parser" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" logf "sigs.k8s.io/controller-runtime/pkg/log" @@ -97,20 +98,20 @@ func TestReceiverFailsWhenPortIsntString(t *testing.T) { // verify assert.Nil(t, p) } - -func TestReceiverFailsWhenNameIsKubeletStats(t *testing.T) { - // prepare - config := map[interface{}]interface{}{ - "name": "kubeletstats", - } +func TestIgnorekubeletstatsEndpoint(t *testing.T) { + // ignore "kubeletstats" receiver endpoint field, this is special case + // as this receiver gets parsed by generic receiver parser + builder := parser.NewGenericReceiverParser(logger, "kubeletstats", map[interface{}]interface{}{ + "endpoint": "0.0.0.0:9000", + }) // test - p := singlePortFromConfigEndpoint(logger, "myreceiver", config) + ports, err := builder.Ports() // verify - assert.Nil(t, p) + assert.NoError(t, err) + assert.Len(t, ports, 0) } - func TestReceiverFallbackWhenNotRegistered(t *testing.T) { // test p := For(logger, "myreceiver", map[interface{}]interface{}{}) From 8d47f2613a078af8e7aebdd9ff910be4a03e6b42 Mon Sep 17 00:00:00 2001 From: Vineeth Pothulapati Date: Sat, 11 Dec 2021 01:41:55 +0530 Subject: [PATCH 4/4] fix import path --- pkg/collector/parser/receiver_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/collector/parser/receiver_test.go b/pkg/collector/parser/receiver_test.go index 00387878eb..b706987ae6 100644 --- a/pkg/collector/parser/receiver_test.go +++ b/pkg/collector/parser/receiver_test.go @@ -18,7 +18,6 @@ import ( "testing" "github.com/go-logr/logr" - "github.com/open-telemetry/opentelemetry-operator/pkg/collector/parser" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" logf "sigs.k8s.io/controller-runtime/pkg/log" @@ -98,10 +97,11 @@ func TestReceiverFailsWhenPortIsntString(t *testing.T) { // verify assert.Nil(t, p) } + func TestIgnorekubeletstatsEndpoint(t *testing.T) { // ignore "kubeletstats" receiver endpoint field, this is special case // as this receiver gets parsed by generic receiver parser - builder := parser.NewGenericReceiverParser(logger, "kubeletstats", map[interface{}]interface{}{ + builder := NewGenericReceiverParser(logger, "kubeletstats", map[interface{}]interface{}{ "endpoint": "0.0.0.0:9000", }) @@ -112,6 +112,7 @@ func TestIgnorekubeletstatsEndpoint(t *testing.T) { assert.NoError(t, err) assert.Len(t, ports, 0) } + func TestReceiverFallbackWhenNotRegistered(t *testing.T) { // test p := For(logger, "myreceiver", map[interface{}]interface{}{})