use of com.newrelic.agent.dispatchers.WebRequestDispatcher in project newrelic-java-agent by newrelic.
the class BasicRequestDispatcherTracerTest method testRequestParameters.
@Test
public void testRequestParameters() throws Exception {
MockHttpRequest httpRequest = new SpecialMockHttpRequest();
WebRequestDispatcher dispatcher = createDispatcher(httpRequest);
Assert.assertEquals(0, Transaction.getTransaction().getPrefixedAgentAttributes().size());
dispatcher.transactionActivityWithResponseFinished();
Assert.assertEquals(1, Transaction.getTransaction().getPrefixedAgentAttributes().size());
Map params = (Map) Transaction.getTransaction().getPrefixedAgentAttributes().get("request.parameters.");
Assert.assertNotNull(params);
Assert.assertEquals(2, params.size());
Assert.assertEquals("1", (String) params.get("one"));
Assert.assertEquals("[2, twoo, twoooo]", ((String) params.get("two")));
}
use of com.newrelic.agent.dispatchers.WebRequestDispatcher in project newrelic-java-agent by newrelic.
the class BasicRequestDispatcherTracerTest method requestXStartHeaderRecordMetricsNoServerName.
@Test
public void requestXStartHeaderRecordMetricsNoServerName() throws Exception {
MockHttpRequest httpRequest = new MockHttpRequest();
long nowInMicroseconds = TimeUnit.MICROSECONDS.convert(Transaction.getTransaction().getWallClockStartTimeMs(), TimeUnit.MILLISECONDS);
long requestStartTimeInMicroseconds = nowInMicroseconds - 10000;
httpRequest.setHeader(QueueTimeTracker.REQUEST_X_START_HEADER, "t=" + requestStartTimeInMicroseconds);
WebRequestDispatcher dispatcher = createDispatcher(httpRequest);
dispatcher.transactionFinished("WebTransaction/Uri/test", stats);
long txStartTimeInMicroseconds = TimeUnit.MICROSECONDS.convert(dispatcher.getTransaction().getWallClockStartTimeMs(), TimeUnit.MILLISECONDS);
float expected = (float) (txStartTimeInMicroseconds - requestStartTimeInMicroseconds) / TimeConversion.MICROSECONDS_PER_SECOND;
TransactionStats statsEngine = new TransactionStats();
dispatcher.recordHeaderMetrics(statsEngine);
String spec = MetricName.QUEUE_TIME.getName();
Assert.assertEquals(1, statsEngine.getUnscopedStats().getOrCreateResponseTimeStats(spec).getCallCount());
assertDelta(expected, statsEngine.getUnscopedStats().getOrCreateResponseTimeStats(spec).getTotal(), .001);
Assert.assertEquals(1, statsEngine.getSize());
}
use of com.newrelic.agent.dispatchers.WebRequestDispatcher in project newrelic-java-agent by newrelic.
the class BasicRequestDispatcherTracerTest method apdexKeyTransaction.
@Test
public void apdexKeyTransaction() throws Exception {
MockHttpRequest httpRequest = new MockHttpRequest();
WebRequestDispatcher dispatcher = createDispatcher(httpRequest);
Transaction tx = Transaction.getTransaction();
dispatcher.setStatus(200);
dispatcher.transactionFinished("WebTransaction/Custom/UrlGenerator/en/betting/Football", stats);
ApdexStats stats1 = stats.getUnscopedStats().getApdexStats("Apdex/Custom/UrlGenerator/en/betting/Football");
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(out);
stats1.writeJSONString(writer);
writer.close();
Assert.assertEquals("[1,0,0,7.0,7.0,0]", out.toString());
}
use of com.newrelic.agent.dispatchers.WebRequestDispatcher in project newrelic-java-agent by newrelic.
the class BasicRequestDispatcherTracerTest method requestXStartHeaderRecordMetricsNoValue.
@Test
public void requestXStartHeaderRecordMetricsNoValue() throws Exception {
MockHttpRequest httpRequest = new MockHttpRequest();
httpRequest.setHeader(QueueTimeTracker.REQUEST_X_START_HEADER, "");
WebRequestDispatcher dispatcher = createDispatcher(httpRequest);
dispatcher.transactionFinished("WebTransaction/Uri/test", stats);
TransactionStats statsEngine = new TransactionStats();
dispatcher.recordHeaderMetrics(statsEngine);
Assert.assertEquals(0, statsEngine.getSize());
}
use of com.newrelic.agent.dispatchers.WebRequestDispatcher in project newrelic-java-agent by newrelic.
the class BasicRequestDispatcherTracerTest method requestXQueueStartHeaderNoTEquals.
@Test
public void requestXQueueStartHeaderNoTEquals() throws Exception {
MockHttpRequest httpRequest = new MockHttpRequest();
long nowInMicroseconds = TimeUnit.MICROSECONDS.convert(Transaction.getTransaction().getWallClockStartTimeMs(), TimeUnit.MILLISECONDS);
long queueStartTimeInMicroseconds = nowInMicroseconds - 10000;
httpRequest.setHeader(QueueTimeTracker.REQUEST_X_QUEUE_START_HEADER, String.valueOf(queueStartTimeInMicroseconds));
WebRequestDispatcher dispatcher = createDispatcher(httpRequest);
dispatcher.transactionFinished("WebTransaction/Uri/test", stats);
long queueStartTimeInMilliseconds = TimeUnit.MILLISECONDS.convert(queueStartTimeInMicroseconds, TimeUnit.MICROSECONDS);
long expectedQueueTime = dispatcher.getTransaction().getWallClockStartTimeMs() - queueStartTimeInMilliseconds;
assertDelta(expectedQueueTime, dispatcher.getQueueTime(), 1);
}
Aggregations