Service environment (#23443)
* fix fileutils.TestFindFile on MacOS * introduce model.ExternalServiceEnvironment * pick license public key from external service env * pick Stripe public key from external service env * pick Rudder key from external service env * configure Sentry DSN from external service env * always log external_service_environment, Unsetenv * clear faked BuildEnv, improve logging * strip out unset GOTAGS * fix Sentry tests * simplify to just ServiceEnvironment * relocate ServiceEnvironment in client config * initialize CWS URLs based on service environment * unset rudder key for boards dev * harden service environment to avoid accidental production * fix TestSentry again * fix DEFAULT -> ENTERPRISE * s/dev/test when naming playbooks rudder key * simplify boards rudder key switch * use uniform rudderKey variable names * retain compatibility with existing pipeline * reduce to just production/test * unit test with valid test license * simplify Playbooks telemetry initialization * restore dev service environment * emit ServiceEnvironment when running e2e tests
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
6c82605df0
Коммит
305fac6507
@@ -31,8 +31,15 @@ const (
|
||||
DBAccessAttempts = 3
|
||||
DBAccessTimeoutSecs = 10
|
||||
|
||||
RudderKey = "placeholder_rudder_key"
|
||||
RudderDataplaneURL = "placeholder_rudder_dataplane_url"
|
||||
rudderDataplaneURL = "https://pdat.matterlytics.com"
|
||||
rudderKeyProd = "1aoejPqhgONMI720CsBSRWzzRQ9"
|
||||
rudderKeyTest = "1aoeoCDeh7OCHcbW2kseWlwUFyq"
|
||||
|
||||
// These are placeholders to allow the existing release pipelines to run without failing to
|
||||
// insert the values that are now hard-coded above. Remove this once we converge on the
|
||||
// unified delivery pipeline in GitHub.
|
||||
_ = "placeholder_rudder_dataplane_url"
|
||||
_ = "placeholder_rudder_key"
|
||||
|
||||
EnvVarInstallType = "MM_INSTALL_TYPE"
|
||||
|
||||
@@ -156,13 +163,21 @@ func (ts *TelemetryService) ensureTelemetryID() error {
|
||||
}
|
||||
|
||||
func (ts *TelemetryService) getRudderConfig() RudderConfig {
|
||||
if !strings.Contains(RudderKey, "placeholder") && !strings.Contains(RudderDataplaneURL, "placeholder") {
|
||||
return RudderConfig{RudderKey, RudderDataplaneURL}
|
||||
} else if os.Getenv("RudderKey") != "" && os.Getenv("RudderDataplaneURL") != "" {
|
||||
// Support unit testing
|
||||
if os.Getenv("RudderKey") != "" && os.Getenv("RudderDataplaneURL") != "" {
|
||||
return RudderConfig{os.Getenv("RudderKey"), os.Getenv("RudderDataplaneURL")}
|
||||
} else {
|
||||
return RudderConfig{}
|
||||
}
|
||||
|
||||
rudderKey := ""
|
||||
switch model.GetServiceEnvironment() {
|
||||
case model.ServiceEnvironmentProduction:
|
||||
rudderKey = rudderKeyProd
|
||||
case model.ServiceEnvironmentTest:
|
||||
rudderKey = rudderKeyTest
|
||||
case model.ServiceEnvironmentDev:
|
||||
}
|
||||
|
||||
return RudderConfig{rudderKey, rudderDataplaneURL}
|
||||
}
|
||||
|
||||
func (ts *TelemetryService) telemetryEnabled() bool {
|
||||
@@ -1333,7 +1348,7 @@ func (ts *TelemetryService) initRudder(endpoint string, rudderKey string) {
|
||||
config.Endpoint = endpoint
|
||||
config.Verbose = ts.verbose
|
||||
// For testing
|
||||
if endpoint != RudderDataplaneURL {
|
||||
if endpoint != rudderDataplaneURL {
|
||||
config.BatchSize = 1
|
||||
}
|
||||
client, err := rudder.NewWithConfig(rudderKey, endpoint, config)
|
||||
|
||||
@@ -13,7 +13,6 @@ import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -124,7 +123,7 @@ func makeTelemetryServiceAndReceiver(t *testing.T, cloudLicense bool) (*Telemetr
|
||||
|
||||
service.TelemetryID = testTelemetryID
|
||||
service.rudderClient = nil
|
||||
service.initRudder(receiver.URL, RudderKey)
|
||||
service.initRudder(receiver.URL, "")
|
||||
|
||||
// initializing rudder send a client identify message
|
||||
select {
|
||||
@@ -340,6 +339,10 @@ func TestEnsureTelemetryID(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("fail to save test ID", func(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip("skipping test in short mode.")
|
||||
}
|
||||
|
||||
storeMock := &storeMocks.Store{}
|
||||
|
||||
systemStore := storeMocks.SystemStore{}
|
||||
@@ -579,9 +582,6 @@ func TestRudderTelemetry(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("SendDailyTelemetryNoRudderKey", func(t *testing.T) {
|
||||
if !strings.Contains(RudderKey, "placeholder") {
|
||||
t.Skipf("Skipping telemetry on production builds")
|
||||
}
|
||||
service.sendDailyTelemetry(false)
|
||||
|
||||
select {
|
||||
@@ -593,9 +593,6 @@ func TestRudderTelemetry(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("SendDailyTelemetryNonCloud", func(t *testing.T) {
|
||||
if !strings.Contains(RudderKey, "placeholder") {
|
||||
t.Skipf("Skipping telemetry on production builds")
|
||||
}
|
||||
service.sendDailyTelemetry(true)
|
||||
|
||||
var batches []testBatch
|
||||
@@ -618,9 +615,6 @@ func TestRudderTelemetry(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("SendDailyTelemetryDisabled", func(t *testing.T) {
|
||||
if !strings.Contains(RudderKey, "placeholder") {
|
||||
t.Skipf("Skipping telemetry on production builds")
|
||||
}
|
||||
*cfg.LogSettings.EnableDiagnostics = false
|
||||
defer func() {
|
||||
*cfg.LogSettings.EnableDiagnostics = true
|
||||
@@ -663,9 +657,6 @@ func TestRudderTelemetry(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("RudderConfigUsesConfigForValues", func(t *testing.T) {
|
||||
if !strings.Contains(RudderKey, "placeholder") {
|
||||
t.Skipf("Skipping telemetry on production builds")
|
||||
}
|
||||
os.Setenv("RudderKey", "abc123")
|
||||
os.Setenv("RudderDataplaneURL", "arudderstackplace")
|
||||
defer os.Unsetenv("RudderKey")
|
||||
@@ -679,9 +670,6 @@ func TestRudderTelemetry(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRudderTelemetryCloud(t *testing.T) {
|
||||
if !strings.Contains(RudderKey, "placeholder") {
|
||||
t.Skipf("Skipping telemetry on production builds")
|
||||
}
|
||||
if testing.Short() {
|
||||
t.SkipNow()
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user