Skip to content

Commit 621fe69

Browse files
anandsugumarandhaval24
authored andcommitted
Fixing FixedRateSampling to work in old and new version of sampling (#540)
Overriding default sampling percentage when programatically specified sampling percentage by user.
1 parent 1fad688 commit 621fe69

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

core/src/main/java/com/microsoft/applicationinsights/internal/channel/sampling/FixedRateTelemetrySampler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ else if (!includeTypes.isEmpty() && !includeTypes.contains(telemetry.getClass())
113113

114114
return false;
115115
}
116-
samplingSupportingTelemetry.setSamplingPercentage(telemetrySamplingScore);
116+
samplingSupportingTelemetry.setSamplingPercentage(testedPercentage);
117117
}
118118
}
119119
}

core/src/main/java/com/microsoft/applicationinsights/internal/channel/samplingV2/FixedRateSamplingTelemetryProcessor.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,16 +159,21 @@ public boolean process(Telemetry telemetry) {
159159
if (samplingSupportingTelemetry.getSamplingPercentage() == null) {
160160

161161
samplingSupportingTelemetry.setSamplingPercentage(samplingPercentage);
162-
163-
if (SamplingScoreGeneratorV2.getSamplingScore(telemetry) >= samplingPercentage) {
164-
165-
InternalLogger.INSTANCE.info("Item %s sampled out", telemetry.getClass());
166-
return false;
167-
}
162+
163+
168164
} else {
169165
InternalLogger.INSTANCE.info("Item has sampling percentage already set to :"
170166
+ samplingSupportingTelemetry.getSamplingPercentage());
167+
168+
samplingPercentage = samplingSupportingTelemetry.getSamplingPercentage();
169+
}
170+
171+
if (SamplingScoreGeneratorV2.getSamplingScore(telemetry) >= samplingPercentage) {
172+
173+
InternalLogger.INSTANCE.info("Item %s sampled out", telemetry.getClass());
174+
return false;
171175
}
176+
172177
} else {
173178
InternalLogger.INSTANCE.trace("Skip sampling since %s type is not sampling applicable", telemetry.getClass());
174179
}

core/src/test/java/com/microsoft/applicationinsights/internal/channel/samplingV2/FixedRateSamplingTelemetryProcessorTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,16 @@ public void telemetryItemHasSamplingPercentageSet() {
5656
}
5757

5858
@Test
59-
public void telemetryItemSamplingIsSkippedWhenSetByUser() {
59+
public void telemetryItemSamplingWorksWhenSetByUser() {
6060
FixedRateSamplingTelemetryProcessor processor = new FixedRateSamplingTelemetryProcessor();
61-
processor.setSamplingPercentage("0.0");
61+
processor.setSamplingPercentage("100.0");
6262
Telemetry requestTelemetry = new RequestTelemetry();
63-
((SupportSampling)requestTelemetry).setSamplingPercentage(100.0);
63+
((SupportSampling)requestTelemetry).setSamplingPercentage(0.0);
6464
int sentCount = 0;
6565
if (processor.process(requestTelemetry)) {
6666
++sentCount;
6767
}
68-
Assert.assertEquals(1, sentCount);
68+
Assert.assertEquals(0, sentCount);
6969
}
7070

7171
@Test

0 commit comments

Comments
 (0)