From f201a6f25123b67082feed1ea02b2f6e301e5cc0 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 4 Jun 2024 08:34:31 -0700 Subject: [PATCH 1/2] Add rate limited sampling smoke test for ingestion sampling --- ...SamplingIngestionSamplingDisabledTest.java | 66 +++++++++++++++++++ ...eLimitedSamplingIngestionSamplingTest.java | 65 ++++++++++++++++++ ...ninsights-ingestion-sampling-disabled.json | 14 ++++ ...pplicationinsights-ingestion-sampling.json | 9 +++ 4 files changed, 154 insertions(+) create mode 100644 smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingDisabledTest.java create mode 100644 smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingTest.java create mode 100644 smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling-disabled.json create mode 100644 smoke-tests/apps/RateLimitedSampling/src/smokeTest/resources/applicationinsights-ingestion-sampling.json 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..ce5641fdd6f --- /dev/null +++ b/smoke-tests/apps/RateLimitedSampling/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/RateLimitedSamplingIngestionSamplingDisabledTest.java @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.microsoft.applicationinsights.smoketest; + +import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import java.util.List; + +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; + +@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 + } +} From b643f0e1c2a9b3ff543175206775e91896bdd004 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 4 Jun 2024 08:57:42 -0700 Subject: [PATCH 2/2] spotless --- ...eLimitedSamplingIngestionSamplingDisabledTest.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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 index ce5641fdd6f..7ad8cebc9f1 100644 --- 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 @@ -3,12 +3,6 @@ package com.microsoft.applicationinsights.smoketest; -import com.microsoft.applicationinsights.smoketest.schemav2.Envelope; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - -import java.util.List; - 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; @@ -20,6 +14,11 @@ 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 {