if (samplingSupportingTelemetry.getSamplingPercentage() == null) { samplingSupportingTelemetry.setSamplingPercentage(samplingPercentage); + samplingSupportingTelemetry.getSamplingPercentage()); samplingPercentage = samplingSupportingTelemetry.getSamplingPercentage();
@Test public void telemetryItemHasSamplingPercentageSet() { List<Telemetry> telemetryList = new ArrayList<Telemetry>(); FixedRateSamplingTelemetryProcessor processor = new FixedRateSamplingTelemetryProcessor(); processor.setSamplingPercentage("20.0"); telemetryList.add(new RequestTelemetry()); telemetryList.add(new PageViewTelemetry()); for (Telemetry t : telemetryList) { processor.process(t); } Assert.assertEquals(20.0, ((SupportSampling)telemetryList.get(0)).getSamplingPercentage(), 0); }
@Test public void telemetryItemSamplingWorksWhenSetByUser() { FixedRateSamplingTelemetryProcessor processor = new FixedRateSamplingTelemetryProcessor(); processor.setSamplingPercentage("100.0"); Telemetry requestTelemetry = new RequestTelemetry(); ((SupportSampling)requestTelemetry).setSamplingPercentage(0.0); int sentCount = 0; if (processor.process(requestTelemetry)) { ++sentCount; } Assert.assertEquals(0, sentCount); }
Assert.assertEquals((Double)samplingRate, ((SupportSampling) itemsToSend.get(0)).getSamplingPercentage());
@Override public boolean isSampledIn(Telemetry telemetry) { Double currentSamplingPercentage = samplingPercentage.get(); if (currentSamplingPercentage < 100.0 - 1.0E-12) { if (telemetry instanceof SupportSampling) { SupportSampling samplingSupportingTelemetry = (SupportSampling)telemetry; if (!excludeTypes.isEmpty() && excludeTypes.contains(telemetry.getClass())) { InternalLogger.INSTANCE.trace("Skip sampling since %s is excluded", telemetry.getClass()); } else if (!includeTypes.isEmpty() && !includeTypes.contains(telemetry.getClass())) { InternalLogger.INSTANCE.trace("Skip sampling since %s is not included", telemetry.getClass()); } else { Double testedPercentage = currentSamplingPercentage; if (samplingSupportingTelemetry.getSamplingPercentage() != null) { testedPercentage = samplingSupportingTelemetry.getSamplingPercentage(); } double telemetrySamplingScore = SamplingScoreGenerator.getSamplingScore(telemetry); if (telemetrySamplingScore >= testedPercentage) { InternalLogger.INSTANCE.trace("Sampled out %s", telemetry.getClass()); return false; } samplingSupportingTelemetry.setSamplingPercentage(testedPercentage); } } } return true; }