introducing clickstream killswitch

This commit is contained in:
chandresh-pancholi
2022-12-22 14:57:46 +05:30
parent 2ec3a248e1
commit 96303e9ceb
3 changed files with 25 additions and 5 deletions

View File

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

View File

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

View File

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