Rudder key and dataplane in Config with env vars (#15572)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
595248b10e
Коммит
ca145a83bd
@@ -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)
|
||||
})
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user