diff --git a/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingDisabledTest.java b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingDisabledTest.java new file mode 100644 index 00000000000..7ad8cebc9f1 --- /dev/null +++ b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingDisabledTest.java @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.smoketest; + +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_11; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_11_OPENJ9; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_17; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_21; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8_OPENJ9; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; +import static java.util.concurrent.TimeUnit.SECONDS; +import static org.assertj.core.api.Assertions.assertThat; + +import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +@UseAgent("applicationinsights-ingestion-sampling-disabled.json") +abstract class RateLimitedSamplingIngestionSamplingDisabledTest { + + @RegisterExtension static final SmokeTestExtension testing = SmokeTestExtension.create(); + + @Test + @TargetUri(value = "/sampling", callCount = 1000) + void testSampling() throws Exception { + // give some time to collect + Thread.sleep(SECONDS.toMillis(5)); + + List rdEnvelopes = testing.mockedIngestion.getItemsEnvelopeDataType("RequestData"); + + assertThat(rdEnvelopes.size()).isEqualTo(1000); + + for (Envelope rdEnvelope : rdEnvelopes) { + assertThat(rdEnvelope.getSampleRate()).isEqualTo(99.99f); + } + } + + @Environment(TOMCAT_8_JAVA_8) + static class Tomcat8Java8Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(TOMCAT_8_JAVA_8_OPENJ9) + static class Tomcat8Java8OpenJ9Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(TOMCAT_8_JAVA_11) + static class Tomcat8Java11Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(TOMCAT_8_JAVA_11_OPENJ9) + static class Tomcat8Java11OpenJ9Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(TOMCAT_8_JAVA_17) + static class Tomcat8Java17Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(TOMCAT_8_JAVA_21) + static class Tomcat8Java21Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(WILDFLY_13_JAVA_8) + static class Wildfly13Java8Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} + + @Environment(WILDFLY_13_JAVA_8_OPENJ9) + static class Wildfly13Java8OpenJ9Test extends RateLimitedSamplingIngestionSamplingDisabledTest {} +} diff --git a/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingTest.java b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingTest.java new file mode 100644 index 00000000000..44978032c65 --- /dev/null +++ b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingTest.java @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.smoketest; + +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_11; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_11_OPENJ9; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_17; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_21; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.TOMCAT_8_JAVA_8_OPENJ9; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8; +import static com.microsoft.applicationinsights.smoketest.EnvironmentValue.WILDFLY_13_JAVA_8_OPENJ9; +import static java.util.concurrent.TimeUnit.SECONDS; +import static org.assertj.core.api.Assertions.assertThat; + +import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +@UseAgent("applicationinsights-ingestion-sampling.json") +abstract class RateLimitedSamplingIngestionSamplingTest { + + @RegisterExtension static final SmokeTestExtension testing = SmokeTestExtension.create(); + + @Test + @TargetUri(value = "/sampling", callCount = 1000) + void testSampling() throws Exception { + // give some time to collect + Thread.sleep(SECONDS.toMillis(5)); + + List rdEnvelopes = testing.mockedIngestion.getItemsEnvelopeDataType("RequestData"); + + assertThat(rdEnvelopes.size()).isEqualTo(1000); + + for (Envelope rdEnvelope : rdEnvelopes) { + assertThat(rdEnvelope.getSampleRate()).isNull(); + } + } + + @Environment(TOMCAT_8_JAVA_8) + static class Tomcat8Java8Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(TOMCAT_8_JAVA_8_OPENJ9) + static class Tomcat8Java8OpenJ9Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(TOMCAT_8_JAVA_11) + static class Tomcat8Java11Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(TOMCAT_8_JAVA_11_OPENJ9) + static class Tomcat8Java11OpenJ9Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(TOMCAT_8_JAVA_17) + static class Tomcat8Java17Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(TOMCAT_8_JAVA_21) + static class Tomcat8Java21Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(WILDFLY_13_JAVA_8) + static class Wildfly13Java8Test extends RateLimitedSamplingIngestionSamplingTest {} + + @Environment(WILDFLY_13_JAVA_8_OPENJ9) + static class Wildfly13Java8OpenJ9Test extends RateLimitedSamplingIngestionSamplingTest {} +} diff --git a/smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling-disabled.json b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling-disabled.json new file mode 100644 index 00000000000..4fa34eae702 --- /dev/null +++ b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling-disabled.json @@ -0,0 +1,14 @@ +{ + "role": { + "name": "testrolename", + "instance": "testroleinstance" + }, + "sampling" : { + "requestsPerSecond": 100000 + }, + "preview": { + "sampling": { + "ingestionSamplingEnabled": false + } + } +} diff --git a/smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling.json b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling.json new file mode 100644 index 00000000000..bee82330773 --- /dev/null +++ b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling.json @@ -0,0 +1,9 @@ +{ + "role": { + "name": "testrolename", + "instance": "testroleinstance" + }, + "sampling" : { + "requestsPerSecond": 100000 + } +}