Rudder key and dataplane in Config with env vars (#15572)

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Jesús Espino
2020-10-01 18:33:44 +02:00
коммит произвёл GitHub
родитель 595248b10e
Коммит ca145a83bd
2 изменённых файлов: 35 добавлений и 3 удалений

Просмотреть файл

@@ -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()

Просмотреть файл

@@ -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)
})
}