use of com.microsoft.applicationinsights.smoketest.schemav2.Envelope in project ApplicationInsights-Java by microsoft.
the class CustomInstrumentationTest method customInstrumentationFive.
@Test
@TargetUri("/customInstrumentationFive")
public void customInstrumentationFive() throws Exception {
List<Envelope> rdList = mockedIngestion.waitForItems("RequestData", 1);
List<Envelope> rddList = mockedIngestion.waitForItemsInRequest("RemoteDependencyData", 4);
Envelope rdEnvelope = rdList.get(0);
RequestData rd = (RequestData) ((Data<?>) rdEnvelope.getData()).getBaseData();
Envelope fiveEnvelope = null;
Envelope sixEnvelope = null;
Envelope oneEnvelope = null;
Envelope twoEnvelope = null;
RemoteDependencyData fiveRdd = null;
RemoteDependencyData sixRdd = null;
RemoteDependencyData oneRdd = null;
RemoteDependencyData twoRdd = null;
for (Envelope loopEnvelope : rddList) {
RemoteDependencyData loopData = (RemoteDependencyData) ((Data<?>) loopEnvelope.getData()).getBaseData();
if (loopData.getName().endsWith(".five")) {
fiveEnvelope = loopEnvelope;
fiveRdd = loopData;
} else if (loopData.getName().endsWith(".six")) {
sixEnvelope = loopEnvelope;
sixRdd = loopData;
} else if (loopData.getName().endsWith(".one")) {
oneEnvelope = loopEnvelope;
oneRdd = loopData;
} else if (loopData.getName().endsWith(".two")) {
twoEnvelope = loopEnvelope;
twoRdd = loopData;
} else {
throw new IllegalStateException("Unexpected remote dependency: " + loopData.getName());
}
}
assertTrue(rd.getSuccess());
assertNotNull(fiveRdd);
assertEquals(fiveRdd.getName(), "com/microsoft/applicationinsights/smoketestapp/TargetObject.five");
assertEquals(fiveRdd.getType(), "OTHER");
assertEquals(fiveRdd.getSuccess(), true);
assertParentChild(rd, rdEnvelope, fiveEnvelope, "GET /CustomInstrumentation/*");
assertNotNull(sixRdd);
assertEquals(sixRdd.getName(), "com/microsoft/applicationinsights/smoketestapp/TargetObject.six");
assertEquals(sixRdd.getType(), "OTHER");
assertEquals(sixRdd.getSuccess(), true);
assertParentChild(rd, rdEnvelope, sixEnvelope, "GET /CustomInstrumentation/*");
assertNotNull(oneRdd);
assertEquals(oneRdd.getName(), "com/microsoft/applicationinsights/smoketestapp/TargetObject.one");
assertEquals(oneRdd.getType(), "OTHER");
assertEquals(oneRdd.getSuccess(), true);
assertParentChild(rd, rdEnvelope, oneEnvelope, "GET /CustomInstrumentation/*");
assertNotNull(twoRdd);
assertEquals(twoRdd.getName(), "com/microsoft/applicationinsights/smoketestapp/TargetObject.two");
assertEquals(twoRdd.getType(), "OTHER");
assertEquals(twoRdd.getSuccess(), true);
assertParentChild(rd, rdEnvelope, twoEnvelope, "GET /CustomInstrumentation/*");
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Envelope in project ApplicationInsights-Java by microsoft.
the class SpringBootControllerSpansEnabledTest method trackEvent.
@Test
@TargetUri("/basic/trackEvent")
public void trackEvent() throws Exception {
List<Envelope> rdList = mockedIngestion.waitForItems("RequestData", 1);
Envelope rdEnvelope = rdList.get(0);
String operationId = rdEnvelope.getTags().get("ai.operation.id");
mockedIngestion.waitForItemsInOperation("EventData", 2, operationId);
// TODO get event data envelope and verify value
List<EventData> data = mockedIngestion.getTelemetryDataByTypeInRequest("EventData");
assertThat(data, hasItem(new TypeSafeMatcher<EventData>() {
final String name = "EventDataTest";
final Matcher<String> nameMatcher = Matchers.equalTo(name);
@Override
protected boolean matchesSafely(EventData item) {
return nameMatcher.matches(item.getName());
}
@Override
public void describeTo(Description description) {
description.appendDescriptionOf(nameMatcher);
}
}));
assertThat(data, hasItem(new TypeSafeMatcher<EventData>() {
final String expectedKey = "key";
final String expectedName = "EventDataPropertyTest";
final String expectedPropertyValue = "value";
final Double expectedMetricValue = 1d;
final Matcher<Map<? extends String, ? extends Double>> metricMatcher = Matchers.hasEntry(expectedKey, expectedMetricValue);
final Matcher<Map<? extends String, ? extends String>> propertyMatcher = Matchers.hasEntry(expectedKey, expectedPropertyValue);
final Matcher<String> nameMatcher = Matchers.equalTo(expectedName);
@Override
public void describeTo(Description description) {
description.appendDescriptionOf(nameMatcher);
description.appendDescriptionOf(propertyMatcher);
description.appendDescriptionOf(metricMatcher);
}
@Override
protected boolean matchesSafely(EventData item) {
return nameMatcher.matches(item.getName()) && propertyMatcher.matches(item.getProperties()) && metricMatcher.matches(item.getMeasurements());
}
}));
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Envelope in project ApplicationInsights-Java by microsoft.
the class SpringBootControllerSpansEnabledTest method testAsyncDependencyCall.
@Test
@TargetUri("/asyncDependencyCall")
public void testAsyncDependencyCall() throws Exception {
List<Envelope> rdList = mockedIngestion.waitForItems("RequestData", 1);
Envelope rdEnvelope = rdList.get(0);
String operationId = rdEnvelope.getTags().get("ai.operation.id");
List<Envelope> rddList = mockedIngestion.waitForItemsInOperation("RemoteDependencyData", 3, operationId);
assertEquals(0, mockedIngestion.getCountForType("EventData"));
Envelope rddEnvelope1 = rddList.get(0);
Envelope rddEnvelope2 = rddList.get(1);
Envelope rddEnvelope3 = rddList.get(2);
RequestData rd = (RequestData) ((Data<?>) rdEnvelope.getData()).getBaseData();
RemoteDependencyData rdd1 = (RemoteDependencyData) ((Data<?>) rddEnvelope1.getData()).getBaseData();
RemoteDependencyData rdd2 = (RemoteDependencyData) ((Data<?>) rddEnvelope2.getData()).getBaseData();
RemoteDependencyData rdd3 = (RemoteDependencyData) ((Data<?>) rddEnvelope3.getData()).getBaseData();
assertEquals("GET /SpringBootTest/asyncDependencyCall", rd.getName());
assertEquals("200", rd.getResponseCode());
assertTrue(rd.getProperties().isEmpty());
assertTrue(rd.getSuccess());
assertEquals("TestController.asyncDependencyCall", rdd1.getName());
assertNull(rdd1.getData());
assertEquals("InProc", rdd1.getType());
assertNull(rdd1.getTarget());
assertTrue(rdd1.getProperties().isEmpty());
assertTrue(rdd1.getSuccess());
assertEquals("GET /", rdd2.getName());
assertEquals("https://www.bing.com", rdd2.getData());
assertEquals("www.bing.com", rdd2.getTarget());
assertTrue(rdd2.getProperties().isEmpty());
assertTrue(rdd2.getSuccess());
// TODO (trask): why is spring-webmvc instrumentation capturing this twice?
assertEquals("TestController.asyncDependencyCall", rdd3.getName());
assertTrue(rdd3.getProperties().isEmpty());
assertTrue(rdd3.getSuccess());
assertParentChild(rd, rdEnvelope, rddEnvelope1, "GET /SpringBootTest/asyncDependencyCall");
assertParentChild(rdd1, rddEnvelope1, rddEnvelope2, "GET /SpringBootTest/asyncDependencyCall");
try {
assertParentChild(rdd1, rddEnvelope1, rddEnvelope3, "GET /SpringBootTest/asyncDependencyCall");
} catch (AssertionError e) {
// on wildfly the duplicate controller spans is nested under the request span for some reason
assertParentChild(rd, rdEnvelope, rddEnvelope3, "GET /SpringBootTest/asyncDependencyCall");
}
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Envelope in project ApplicationInsights-Java by microsoft.
the class SpringBootTest method trackEvent.
@Test
@TargetUri("/basic/trackEvent")
public void trackEvent() throws Exception {
List<Envelope> rdList = mockedIngestion.waitForItems("RequestData", 1);
Envelope rdEnvelope = rdList.get(0);
String operationId = rdEnvelope.getTags().get("ai.operation.id");
mockedIngestion.waitForItemsInOperation("EventData", 2, operationId);
// TODO get event data envelope and verify value
List<EventData> data = mockedIngestion.getTelemetryDataByTypeInRequest("EventData");
assertThat(data, hasItem(new TypeSafeMatcher<EventData>() {
final String name = "EventDataTest";
final Matcher<String> nameMatcher = Matchers.equalTo(name);
@Override
protected boolean matchesSafely(EventData item) {
return nameMatcher.matches(item.getName());
}
@Override
public void describeTo(Description description) {
description.appendDescriptionOf(nameMatcher);
}
}));
assertThat(data, hasItem(new TypeSafeMatcher<EventData>() {
final String expectedKey = "key";
final String expectedName = "EventDataPropertyTest";
final String expectedPropertyValue = "value";
final Double expectedMetricValue = 1d;
final Matcher<Map<? extends String, ? extends Double>> metricMatcher = Matchers.hasEntry(expectedKey, expectedMetricValue);
final Matcher<Map<? extends String, ? extends String>> propertyMatcher = Matchers.hasEntry(expectedKey, expectedPropertyValue);
final Matcher<String> nameMatcher = Matchers.equalTo(expectedName);
@Override
public void describeTo(Description description) {
description.appendDescriptionOf(nameMatcher);
description.appendDescriptionOf(propertyMatcher);
description.appendDescriptionOf(metricMatcher);
}
@Override
protected boolean matchesSafely(EventData item) {
return nameMatcher.matches(item.getName()) && propertyMatcher.matches(item.getProperties()) && metricMatcher.matches(item.getMeasurements());
}
}));
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Envelope in project ApplicationInsights-Java by microsoft.
the class SpringBootTest method testResultCodeWhenRestControllerThrows.
@Test
@TargetUri("/throwsException")
public void testResultCodeWhenRestControllerThrows() throws Exception {
List<Envelope> rdList = mockedIngestion.waitForItems("RequestData", 1);
Envelope rdEnvelope = rdList.get(0);
String operationId = rdEnvelope.getTags().get("ai.operation.id");
List<Envelope> edList = mockedIngestion.waitForItems(new Predicate<Envelope>() {
@Override
public boolean test(Envelope input) {
if (!"ExceptionData".equals(input.getData().getBaseType())) {
return false;
}
if (!operationId.equals(input.getTags().get("ai.operation.id"))) {
return false;
}
// lastly, filter out ExceptionData captured from tomcat logger
ExceptionData data = (ExceptionData) ((Data<?>) input.getData()).getBaseData();
return !data.getProperties().containsKey("LoggerName");
}
}, 1, 10, TimeUnit.SECONDS);
assertEquals(0, mockedIngestion.getCountForType("EventData"));
Envelope edEnvelope1 = edList.get(0);
RequestData rd = getTelemetryDataForType(0, "RequestData");
assertEquals("GET /SpringBootTest/throwsException", rd.getName());
assertEquals("500", rd.getResponseCode());
assertTrue(rd.getProperties().isEmpty());
assertFalse(rd.getSuccess());
assertParentChild(rd, rdEnvelope, edEnvelope1, "GET /SpringBootTest/throwsException");
}
Aggregations