diff --git a/opentelemetry-auto-instr-java b/opentelemetry-auto-instr-java index 190b635785b..b7b07f6a231 160000 --- a/opentelemetry-auto-instr-java +++ b/opentelemetry-auto-instr-java @@ -1 +1 @@ -Subproject commit 190b635785b41de9f2ed3c70099f3e4dd45b8c0d +Subproject commit b7b07f6a231ee80b10a5327ad829296fe6eff8b6 diff --git a/settings.gradle b/settings.gradle index c78a033788d..fb836a58fe6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -81,6 +81,7 @@ include ':test:smoke:testApps:JMS' include ':test:smoke:testApps:Kafka' include ':test:smoke:testApps:SpringCloudStream' include ':test:smoke:testApps:Micrometer' +include ':test:smoke:testApps:ActuatorMetrics' include ':test:smoke:testApps:SystemExit' include ':test:smoke:testApps:VerifyShading' include ':test:smoke:testApps:VerifyJava7' diff --git a/test/smoke/testApps/ActuatorMetrics/build.gradle b/test/smoke/testApps/ActuatorMetrics/build.gradle new file mode 100644 index 00000000000..612c96486e7 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '2.1.7.RELEASE' +} + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 +compileSmokeTestJava.sourceCompatibility = 1.8 +compileSmokeTestJava.targetCompatibility = 1.8 + +ext.testAppArtifactDir = jar.destinationDirectory +ext.testAppArtifactFilename = jar.archiveFileName.get() + +dependencies { + compileOnly aiAgentJar // this is just to force building the agent first + + compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.1.7.RELEASE' + compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '2.1.7.RELEASE' +} diff --git a/test/smoke/testApps/ActuatorMetrics/src/main/java/com/microsoft/ajl/simple/SpringBootApp.java b/test/smoke/testApps/ActuatorMetrics/src/main/java/com/microsoft/ajl/simple/SpringBootApp.java new file mode 100644 index 00000000000..d68580adab0 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/main/java/com/microsoft/ajl/simple/SpringBootApp.java @@ -0,0 +1,13 @@ +package com.microsoft.ajl.simple; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringBootApp { + + public static void main(String[] args) { + + SpringApplication.run(SpringBootApp.class, args); + } +} diff --git a/test/smoke/testApps/ActuatorMetrics/src/main/java/com/microsoft/ajl/simple/TestController.java b/test/smoke/testApps/ActuatorMetrics/src/main/java/com/microsoft/ajl/simple/TestController.java new file mode 100644 index 00000000000..2c0413d069d --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/main/java/com/microsoft/ajl/simple/TestController.java @@ -0,0 +1,18 @@ +package com.microsoft.ajl.simple; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class TestController { + + @GetMapping("/") + public String root() { + return "OK"; + } + + @GetMapping("/test") + public String test() { + return "OK!"; + } +} diff --git a/test/smoke/testApps/ActuatorMetrics/src/main/resources/application.properties b/test/smoke/testApps/ActuatorMetrics/src/main/resources/application.properties new file mode 100644 index 00000000000..a33fa659021 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/main/resources/application.properties @@ -0,0 +1 @@ +management.metrics.export.azuremonitor.instrumentation-key=00000000-0000-0000-0000-000000000000 diff --git a/test/smoke/testApps/ActuatorMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java new file mode 100644 index 00000000000..c392a145147 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/java/com/microsoft/applicationinsights/smoketest/MicrometerTest.java @@ -0,0 +1,40 @@ +package com.microsoft.applicationinsights.smoketest; + +import java.util.List; + +import com.microsoft.applicationinsights.internal.schemav2.DataPoint; +import com.microsoft.applicationinsights.internal.schemav2.DataPointType; +import com.microsoft.applicationinsights.internal.schemav2.MetricData; +import org.junit.*; + +import static org.junit.Assert.*; + +@UseAgent("Micrometer") +public class MicrometerTest extends AiSmokeTest { + + @Test + @TargetUri("/test") + public void doMostBasicTest() throws Exception { + mockedIngestion.waitForItems("RequestData", 1); + + mockedIngestion.waitForItems("MetricData", 1); + + List<MetricData> metrics = mockedIngestion.getTelemetryDataByType("MetricData"); + + assertEquals(1, metrics.size()); + + List<DataPoint> points = metrics.get(0).getMetrics(); + + assertEquals(1, points.size()); + + DataPoint point = points.get(0); + + assertEquals(DataPointType.Measurement, point.getKind()); + assertEquals(1, point.getValue(), 0); + assertEquals("test_counter", point.getName()); + assertNull("getCount was non-null", point.getCount()); + assertNull("getMin was non-null", point.getMin()); + assertNull("getMax was non-null", point.getMax()); + assertNull("getStdDev was non-null", point.getStdDev()); + } +} diff --git a/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/README.md b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/README.md new file mode 100644 index 00000000000..5795e52c534 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/README.md @@ -0,0 +1 @@ +`jre.excludes.txt` is needed because Spring Boot 2 and Micrometer do not support Java 7 diff --git a/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/appServers.txt b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/appServers.txt new file mode 100644 index 00000000000..ff8ac2f8dca --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/appServers.txt @@ -0,0 +1 @@ +javase diff --git a/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/jre.excludes.txt b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/jre.excludes.txt new file mode 100644 index 00000000000..df1c16e78c4 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/jre.excludes.txt @@ -0,0 +1 @@ +azul/zulu-openjdk:7 diff --git a/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/logback-test.xml b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/logback-test.xml new file mode 100644 index 00000000000..8c9e643bae2 --- /dev/null +++ b/test/smoke/testApps/ActuatorMetrics/src/smokeTest/resources/logback-test.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE configuration> +<configuration> + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern> + </encoder> + </appender> + <root level="warn"> + <appender-ref ref="CONSOLE" /> + </root> +</configuration>