From ca145a83bdf0bc49a6a53aded14026efca8a5ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Thu, 1 Oct 2020 18:33:44 +0200 Subject: [PATCH] Rudder key and dataplane in Config with env vars (#15572) Co-authored-by: Mattermod --- services/telemetry/telemetry.go | 24 ++++++++++++++++++++++-- services/telemetry/telemetry_test.go | 14 +++++++++++++- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/services/telemetry/telemetry.go b/services/telemetry/telemetry.go index fca9f5a9b1..1f5b2877eb 100644 --- a/services/telemetry/telemetry.go +++ b/services/telemetry/telemetry.go @@ -99,6 +99,11 @@ type TelemetryService struct { timestampLastTelemetrySent time.Time } +type RudderConfig struct { + RudderKey string + DataplaneUrl string +} + func New(srv ServerIface, dbStore store.Store, searchEngine *searchengine.Broker, log *mlog.Logger) *TelemetryService { service := &TelemetryService{ srv: srv, @@ -130,9 +135,24 @@ func (ts *TelemetryService) ensureTelemetryID() { ts.TelemetryID = id } +func (ts *TelemetryService) getRudderConfig() RudderConfig { + if !strings.Contains(RUDDER_KEY, "placeholder") && !strings.Contains(RUDDER_DATAPLANE_URL, "placeholder") { + return RudderConfig{RUDDER_KEY, RUDDER_DATAPLANE_URL} + } else if os.Getenv("RUDDER_KEY") != "" && os.Getenv("RUDDER_DATAPLANE_URL") != "" { + return RudderConfig{os.Getenv("RUDDER_KEY"), os.Getenv("RUDDER_DATAPLANE_URL")} + } else { + return RudderConfig{} + } +} + +func (ts *TelemetryService) telemetryEnabled() bool { + return *ts.srv.Config().LogSettings.EnableDiagnostics && ts.srv.IsLeader() +} + func (ts *TelemetryService) sendDailyTelemetry(override bool) { - if *ts.srv.Config().LogSettings.EnableDiagnostics && ts.srv.IsLeader() && ((!strings.HasPrefix(RUDDER_KEY, "placeholder") && !strings.HasPrefix(RUDDER_DATAPLANE_URL, "placeholder")) || override) { - ts.initRudder(RUDDER_DATAPLANE_URL, RUDDER_KEY) + config := ts.getRudderConfig() + if ts.telemetryEnabled() && ((config.DataplaneUrl != "" && config.RudderKey != "") || override) { + ts.initRudder(config.DataplaneUrl, config.RudderKey) ts.trackActivity() ts.trackConfig() ts.trackLicense() diff --git a/services/telemetry/telemetry_test.go b/services/telemetry/telemetry_test.go index 136d4f226c..f1e65af01d 100644 --- a/services/telemetry/telemetry_test.go +++ b/services/telemetry/telemetry_test.go @@ -266,7 +266,7 @@ func TestRudderTelemetry(t *testing.T) { telemetryService := New(serverIfaceMock, storeMock, searchengine.NewBroker(cfg, nil), mlog.NewLogger(&mlog.LoggerConfiguration{})) telemetryService.TelemetryID = telemetryID telemetryService.rudderClient = nil - telemetryService.initRudder(server.URL, "") + telemetryService.initRudder(server.URL, RUDDER_KEY) assertPayload := func(t *testing.T, actual payload, event string, properties map[string]interface{}) { t.Helper() @@ -505,4 +505,16 @@ func TestRudderTelemetry(t *testing.T) { } } }) + + t.Run("RudderConfigUsesConfigForValues", func(t *testing.T) { + os.Setenv("RUDDER_KEY", "abc123") + os.Setenv("RUDDER_DATAPLANE_URL", "arudderstackplace") + defer os.Unsetenv("RUDDER_KEY") + defer os.Unsetenv("RUDDER_DATAPLANE_URL") + + config := telemetryService.getRudderConfig() + + assert.Equal(t, "arudderstackplace", config.DataplaneUrl) + assert.Equal(t, "abc123", config.RudderKey) + }) }