introducing clickstream killswitch
This commit is contained in:
@@ -53,6 +53,8 @@ public class LitmusConfig {
|
||||
|
||||
private final String litmusClientVersion;
|
||||
|
||||
private final boolean enableClickStream;
|
||||
|
||||
private LitmusConfig(
|
||||
URI litmusAPI,
|
||||
String appName,
|
||||
@@ -70,7 +72,8 @@ public class LitmusConfig {
|
||||
String vertical,
|
||||
MeterRegistry meterRegistry,
|
||||
ExecutorService executorService,
|
||||
String litmusClientVersion) {
|
||||
String litmusClientVersion,
|
||||
boolean enableClickStream) {
|
||||
|
||||
if (appName == null) {
|
||||
throw new IllegalStateException("You are required to specify the litmus appName");
|
||||
@@ -127,6 +130,7 @@ public class LitmusConfig {
|
||||
this.meterRegistry = meterRegistry;
|
||||
this.executorService = executorService;
|
||||
this.litmusClientVersion = LitmusProperties.getProperty("litmus.client.version");
|
||||
this.enableClickStream = enableClickStream;
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
@@ -206,6 +210,10 @@ public class LitmusConfig {
|
||||
public String getLitmusClientVersion() {
|
||||
return litmusClientVersion;
|
||||
}
|
||||
|
||||
public boolean isEnableClickStream() {
|
||||
return enableClickStream;
|
||||
}
|
||||
public static class Builder {
|
||||
|
||||
private URI litmusAPI;
|
||||
@@ -228,6 +236,8 @@ public class LitmusConfig {
|
||||
|
||||
private String litmusClientVersion;
|
||||
|
||||
private boolean enableClickStream;
|
||||
|
||||
private static String getHostname() {
|
||||
String hostName = System.getProperty("hostname");
|
||||
if (hostName == null || hostName.length() == 0) {
|
||||
@@ -334,6 +344,10 @@ public class LitmusConfig {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder enableClickStream(boolean enableClickStream) {
|
||||
this.enableClickStream = enableClickStream;
|
||||
return this;
|
||||
}
|
||||
|
||||
private String getBackupFile() {
|
||||
if (backupFile != null) {
|
||||
@@ -364,7 +378,8 @@ public class LitmusConfig {
|
||||
vertical,
|
||||
meterRegistry,
|
||||
executorService,
|
||||
litmusClientVersion);
|
||||
litmusClientVersion,
|
||||
enableClickStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,7 +164,9 @@ public class DefaultLitmus implements Litmus {
|
||||
.register(this.config.getMeterRegistry())
|
||||
.increment();
|
||||
|
||||
this.eventDispatcher.publish(context, litmusExperiment, enabled, null);
|
||||
if (config.isEnableClickStream()) {
|
||||
this.eventDispatcher.publish(context, litmusExperiment, enabled, null);
|
||||
}
|
||||
|
||||
log.info("experiment_name: {}, result: {}", experimentName, enabled);
|
||||
return enabled;
|
||||
@@ -221,7 +223,10 @@ public class DefaultLitmus implements Litmus {
|
||||
? VariantUtil.selectVariant(litmusExperiment, context, defaultValue)
|
||||
: defaultValue;
|
||||
|
||||
this.eventDispatcher.publish(context, litmusExperiment, enabled, variant);
|
||||
if (config.isEnableClickStream()) {
|
||||
this.eventDispatcher.publish(context, litmusExperiment, enabled, variant);
|
||||
}
|
||||
|
||||
log.info("experiment_name: {}, result: {}", experimentName, variant.toString());
|
||||
|
||||
counterMetrics(config, "litmus_client_experiment_variant")
|
||||
|
||||
@@ -18,7 +18,7 @@ public class MockContainer {
|
||||
.instanceId("test-instance")
|
||||
.litmusContextProvider(new CustomLitmusContextProvider())
|
||||
.clickStreamAPI("https://dev-janus.np.navi-tech.in/events/json")
|
||||
.vertical("PL")
|
||||
.vertical("SA")
|
||||
.meterRegistry(meterRegistry)
|
||||
.synchronousFetchOnInitialisation(true)
|
||||
.build();
|
||||
|
||||
Reference in New Issue
Block a user