use of com.newrelic.agent.introspec.TracedMetricData in project newrelic-java-agent by newrelic.
the class OkHttp314Test method testExternal.
@Test
public void testExternal() throws Exception {
URI endpoint = server.getEndPoint();
String host1 = endpoint.getHost();
httpClientExternal(endpoint.toString(), false, 2000);
Introspector introspector = InstrumentationTestRunner.getIntrospector();
Assert.assertEquals(2, introspector.getFinishedTransactionCount());
String txOne = null;
for (String txName : introspector.getTransactionNames()) {
if (txName.matches(".*OkHttp314Test.*")) {
txOne = txName;
}
}
Assert.assertNotNull("Transaction not found", txOne);
Assert.assertEquals(1, MetricsHelper.getScopedMetricCount(txOne, "External/" + host1 + "/OkHttp/execute"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/" + host1 + "/OkHttp/execute"));
// external rollups
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/" + host1 + "/all"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/allOther"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/all"));
// verify timing of External/all metrics
TracedMetricData externalMetrics = InstrumentationTestRunner.getIntrospector().getUnscopedMetrics().get("External/all");
assertNotNull(externalMetrics);
assertTrue(externalMetrics.getTotalTimeInSec() > 2);
Collection<TransactionEvent> transactionEvents = introspector.getTransactionEvents(txOne);
Assert.assertEquals(1, transactionEvents.size());
TransactionEvent transactionEvent = transactionEvents.iterator().next();
Assert.assertEquals(1, transactionEvent.getExternalCallCount());
Assert.assertTrue(transactionEvent.getExternalDurationInSec() > 0);
Collection<ExternalRequest> externalRequests = introspector.getExternalRequests(txOne);
Assert.assertEquals(1, externalRequests.size());
ExternalRequest externalRequest = externalRequests.iterator().next();
Assert.assertEquals(1, externalRequest.getCount());
Assert.assertEquals(host1, externalRequest.getHostname());
Assert.assertEquals("OkHttp", externalRequest.getLibrary());
Assert.assertEquals("execute", externalRequest.getOperation());
Assert.assertEquals(Integer.valueOf(200), externalRequest.getStatusCode());
// the test server does return the trailing space, this client does not trim it
Assert.assertEquals("OK ", externalRequest.getStatusText());
}
use of com.newrelic.agent.introspec.TracedMetricData in project newrelic-java-agent by newrelic.
the class OkHttp34Test method testExternal.
@Test
public void testExternal() throws Exception {
URI endpoint = server.getEndPoint();
String host1 = endpoint.getHost();
httpClientExternal(endpoint.toString(), false, 2000);
Introspector introspector = InstrumentationTestRunner.getIntrospector();
Assert.assertEquals(2, introspector.getFinishedTransactionCount());
String txOne = null;
for (String txName : introspector.getTransactionNames()) {
if (txName.matches(".*OkHttp34Test.*")) {
txOne = txName;
}
}
Assert.assertNotNull("Transaction not found", txOne);
Assert.assertEquals(1, MetricsHelper.getScopedMetricCount(txOne, "External/" + host1 + "/OkHttp/execute"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/" + host1 + "/OkHttp/execute"));
// external rollups
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/" + host1 + "/all"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/allOther"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/all"));
// verify timing of External/all metrics
TracedMetricData externalMetrics = InstrumentationTestRunner.getIntrospector().getUnscopedMetrics().get("External/all");
assertNotNull(externalMetrics);
assertTrue(externalMetrics.getTotalTimeInSec() > 2);
Collection<TransactionEvent> transactionEvents = introspector.getTransactionEvents(txOne);
Assert.assertEquals(1, transactionEvents.size());
TransactionEvent transactionEvent = transactionEvents.iterator().next();
Assert.assertEquals(1, transactionEvent.getExternalCallCount());
Assert.assertTrue(transactionEvent.getExternalDurationInSec() > 0);
Collection<ExternalRequest> externalRequests = introspector.getExternalRequests(txOne);
Assert.assertEquals(1, externalRequests.size());
ExternalRequest externalRequest = externalRequests.iterator().next();
Assert.assertEquals(1, externalRequest.getCount());
Assert.assertEquals(host1, externalRequest.getHostname());
Assert.assertEquals("OkHttp", externalRequest.getLibrary());
Assert.assertEquals("execute", externalRequest.getOperation());
Assert.assertEquals(Integer.valueOf(200), externalRequest.getStatusCode());
// the test server does return the trailing space, this client does not trim it
Assert.assertEquals("OK ", externalRequest.getStatusText());
}
use of com.newrelic.agent.introspec.TracedMetricData in project newrelic-java-agent by newrelic.
the class OkHttp36Test method testExternal.
@Test
public void testExternal() throws Exception {
URI endpoint = server.getEndPoint();
String host1 = endpoint.getHost();
httpClientExternal(endpoint.toString(), false, 2000);
Introspector introspector = InstrumentationTestRunner.getIntrospector();
Assert.assertEquals(2, introspector.getFinishedTransactionCount());
String txOne = null;
for (String txName : introspector.getTransactionNames()) {
if (txName.matches(".*OkHttp36Test.*")) {
txOne = txName;
}
}
Assert.assertNotNull("Transaction not found", txOne);
Assert.assertEquals(1, MetricsHelper.getScopedMetricCount(txOne, "External/" + host1 + "/OkHttp/execute"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/" + host1 + "/OkHttp/execute"));
// external rollups
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/" + host1 + "/all"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/allOther"));
Assert.assertEquals(1, MetricsHelper.getUnscopedMetricCount("External/all"));
// verify timing of External/all metrics
TracedMetricData externalMetrics = InstrumentationTestRunner.getIntrospector().getUnscopedMetrics().get("External/all");
assertNotNull(externalMetrics);
assertTrue(externalMetrics.getTotalTimeInSec() > 2);
Collection<TransactionEvent> transactionEvents = introspector.getTransactionEvents(txOne);
Assert.assertEquals(1, transactionEvents.size());
TransactionEvent transactionEvent = transactionEvents.iterator().next();
Assert.assertEquals(1, transactionEvent.getExternalCallCount());
Assert.assertTrue(transactionEvent.getExternalDurationInSec() > 0);
Collection<ExternalRequest> externalRequests = introspector.getExternalRequests(txOne);
Assert.assertEquals(1, externalRequests.size());
ExternalRequest externalRequest = externalRequests.iterator().next();
Assert.assertEquals(1, externalRequest.getCount());
Assert.assertEquals(host1, externalRequest.getHostname());
Assert.assertEquals("OkHttp", externalRequest.getLibrary());
Assert.assertEquals("execute", externalRequest.getOperation());
Assert.assertEquals(Integer.valueOf(200), externalRequest.getStatusCode());
// the test server does return the trailing space, this client does not trim it
Assert.assertEquals("OK ", externalRequest.getStatusText());
}
use of com.newrelic.agent.introspec.TracedMetricData in project newrelic-java-agent by newrelic.
the class ServerInstrumentationTest method assertTransactionNameWithMetrics.
private void assertTransactionNameWithMetrics(String controllerName, String controllerMethod) {
// This is not a WebTransaction because our Play instrumentation doesn't set a WebRequest or a
// WebResponse; we instead rely on the Netty and/or Akka instrumentation to do that for us
String expectedTxName = new StringBuilder("OtherTransaction/PlayControllerAction/").append(controllerName).append(".").append(controllerMethod).toString();
Introspector introspector = InstrumentationTestRunner.getIntrospector();
int finishedTransactionCount = introspector.getFinishedTransactionCount(5000L);
assertEquals(1, finishedTransactionCount);
assertTrue(introspector.getTransactionNames().contains(expectedTxName));
Map<String, TracedMetricData> metricsForTransaction = introspector.getMetricsForTransaction(expectedTxName);
assertTrue(metricsForTransaction.containsKey("Play2Routing"));
}
use of com.newrelic.agent.introspec.TracedMetricData in project newrelic-java-agent by newrelic.
the class ServerInstrumentationTest method assertTransactionNameWithMetrics.
private void assertTransactionNameWithMetrics(String controllerName, String controllerMethod) {
// This is not a WebTransaction because our Play instrumentation doesn't set a WebRequest or a
// WebResponse; we instead rely on the Netty and/or Akka instrumentation to do that for us
String expectedTxName = "OtherTransaction/PlayControllerAction/" + controllerName + "." + controllerMethod;
Introspector introspector = InstrumentationTestRunner.getIntrospector();
int finishedTransactionCount = introspector.getFinishedTransactionCount(5000L);
assertEquals(1, finishedTransactionCount);
assertTrue(introspector.getTransactionNames().contains(expectedTxName));
Map<String, TracedMetricData> metricsForTransaction = introspector.getMetricsForTransaction(expectedTxName);
assertTrue(metricsForTransaction.containsKey("Play2Routing"));
}
Aggregations