Search in sources :

Example 16 with ResponseTimeStats

use of com.newrelic.agent.stats.ResponseTimeStats in project newrelic-java-agent by newrelic.

the class TransactionTimeTest method testTransactionTimesWebTransaction.

@Test
public void testTransactionTimesWebTransaction() throws InterruptedException {
    doWebWork();
    // verify count on stats
    Assert.assertNotNull(stats);
    ResponseTimeStats stat = stats.getScopedStats().getOrCreateResponseTimeStats("Custom/test.newrelic.test.agent.TransactionTimeTest/hello1");
    Assert.assertNotNull(stat);
    Assert.assertEquals(1, stat.getCallCount());
    stat = stats.getScopedStats().getOrCreateResponseTimeStats("Custom/test.newrelic.test.agent.TransactionTimeTest/hello2");
    Assert.assertNotNull(stat);
    Assert.assertEquals(1, stat.getCallCount());
    // verify total time
    double expected = data.getRootTracer().getDuration() / 1000000000.0;
    Assert.assertEquals(expected, stats.getUnscopedStats().getOrCreateResponseTimeStats("WebTransaction/Uri/mytest").getTotal(), .0001);
    Assert.assertEquals(expected, stats.getUnscopedStats().getOrCreateResponseTimeStats("WebTransactionTotalTime/Uri/mytest").getTotal(), .0001);
}
Also used : ResponseTimeStats(com.newrelic.agent.stats.ResponseTimeStats) Test(org.junit.Test)

Example 17 with ResponseTimeStats

use of com.newrelic.agent.stats.ResponseTimeStats in project newrelic-java-agent by newrelic.

the class ApiTest method testSetRequestAndResponse.

@Test
public void testSetRequestAndResponse() {
    TransactionDataList txList = new TransactionDataList();
    ServiceFactory.getTransactionService().addTransactionListener(txList);
    Transaction tx = Transaction.getTransaction();
    OtherRootTracer tracer = new OtherRootTracer(tx, new ClassMethodSignature("", "", ""), this, new SimpleMetricNameFormat("blah"));
    Assert.assertEquals(tracer, tx.getTransactionActivity().tracerStarted(tracer));
    Request request = new ApiTestHelper.RequestWrapper(new MockHttpServletRequest("/", "mytest", "", "&test=dude"));
    Response response = new ApiTestHelper.ResponseWrapper(new MockHttpServletResponse());
    NewRelic.setRequestAndResponse(request, response);
    tracer.finish(0, null);
    Assert.assertEquals(1, txList.size());
    Assert.assertEquals("/mytest", txList.get(0).getRequestUri(AgentConfigImpl.ATTRIBUTES));
    TransactionStats stats = apiTestHelper.tranStats;
    ResponseTimeStats dispatcherStats = stats.getUnscopedStats().getOrCreateResponseTimeStats("HttpDispatcher");
    Assert.assertEquals(1, dispatcherStats.getCallCount());
    Assert.assertEquals(1, stats.getUnscopedStats().getOrCreateResponseTimeStats("WebTransaction/Uri/mytest").getCallCount());
    Assert.assertEquals(1, stats.getUnscopedStats().getApdexStats("Apdex/Uri/mytest").getApdexSatisfying());
    Assert.assertEquals(1, stats.getUnscopedStats().getApdexStats("Apdex").getApdexSatisfying());
    Assert.assertEquals(1, stats.getUnscopedStats().getOrCreateResponseTimeStats(MetricNames.WEB_TRANSACTION).getCallCount());
    Assert.assertEquals(0, stats.getUnscopedStats().getOrCreateResponseTimeStats(MetricNames.OTHER_TRANSACTION_ALL).getCallCount());
}
Also used : MockHttpServletRequest(org.apache.struts.mock.MockHttpServletRequest) ExtendedRequest(com.newrelic.api.agent.ExtendedRequest) Request(com.newrelic.api.agent.Request) MockHttpRequest(com.newrelic.agent.tracers.servlet.MockHttpRequest) MockHttpServletRequest(org.apache.struts.mock.MockHttpServletRequest) HttpUriRequest(org.apache.http.client.methods.HttpUriRequest) OtherRootTracer(com.newrelic.agent.tracers.OtherRootTracer) MockHttpServletResponse(org.apache.struts.mock.MockHttpServletResponse) MockHttpResponse(com.newrelic.agent.tracers.servlet.MockHttpResponse) Response(com.newrelic.api.agent.Response) CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) HttpServletResponse(javax.servlet.http.HttpServletResponse) ResponseTimeStats(com.newrelic.agent.stats.ResponseTimeStats) TransactionDataList(com.newrelic.agent.TransactionDataList) TransactionStats(com.newrelic.agent.stats.TransactionStats) Transaction(com.newrelic.agent.Transaction) ClassMethodSignature(com.newrelic.agent.tracers.ClassMethodSignature) SimpleMetricNameFormat(com.newrelic.agent.tracers.metricname.SimpleMetricNameFormat) MockHttpServletResponse(org.apache.struts.mock.MockHttpServletResponse) BrowserConfigTest(com.newrelic.agent.browser.BrowserConfigTest) Test(org.junit.Test)

Example 18 with ResponseTimeStats

use of com.newrelic.agent.stats.ResponseTimeStats in project newrelic-java-agent by newrelic.

the class TransactionAsyncRootFirstTest method testStartAndThenLinkMultipleSameTokens.

@Test
public void testStartAndThenLinkMultipleSameTokens() throws InterruptedException {
    Transaction.clearTransaction();
    Transaction tx = Transaction.getTransaction();
    Tracer rootTracer = TransactionAsyncUtility.createDispatcherTracer(this, "hi");
    tx.getTransactionActivity().tracerStarted(rootTracer);
    TokenImpl token1 = (TokenImpl) tx.getToken();
    rootTracer.finish(Opcodes.RETURN, 0);
    StartAndThenLink activity1 = new StartAndThenLink(token1, false, false);
    activity1.start();
    activity1.join();
    StartAndThenLink activity2 = new StartAndThenLink(token1, true, false);
    activity2.start();
    activity2.join();
    waitForTransaction();
    TransactionAsyncUtility.basicDataVerify(data, stats, activity1, 3);
    Map<String, StatsBase> scoped = stats.getScopedStats().getStatsMap();
    ResponseTimeStats data1 = (ResponseTimeStats) scoped.get("RequestDispatcher");
    ResponseTimeStats data2 = (ResponseTimeStats) scoped.get("Java/java.lang.Object/root" + token1.toString());
    Assert.assertNotNull(data1);
    Assert.assertNotNull(data2);
    Assert.assertEquals(1, data1.getCallCount());
    Assert.assertEquals(2, data2.getCallCount());
    Map<String, StatsBase> unscoped = stats.getUnscopedStats().getStatsMap();
    Assert.assertEquals(((ResponseTimeStats) unscoped.get("WebTransactionTotalTime")).getTotal(), data1.getTotal() + data2.getTotal(), .001);
}
Also used : ResponseTimeStats(com.newrelic.agent.stats.ResponseTimeStats) Transaction(com.newrelic.agent.Transaction) TokenImpl(com.newrelic.agent.TokenImpl) Tracer(com.newrelic.agent.tracers.Tracer) StartAndThenLink(com.newrelic.agent.TransactionAsyncUtility.StartAndThenLink) StatsBase(com.newrelic.agent.stats.StatsBase) Test(org.junit.Test)

Example 19 with ResponseTimeStats

use of com.newrelic.agent.stats.ResponseTimeStats in project newrelic-java-agent by newrelic.

the class TransactionAsyncRootFirstTest method verifyDataTwo.

private void verifyDataTwo(StartAndThenLink activity, Transaction tx, TokenImpl token) {
    waitForTransaction();
    TransactionAsyncUtility.basicDataVerify(data, stats, activity, 2);
    Map<String, StatsBase> scoped = stats.getScopedStats().getStatsMap();
    ResponseTimeStats data1 = (ResponseTimeStats) scoped.get("RequestDispatcher");
    ResponseTimeStats data2 = (ResponseTimeStats) scoped.get("Java/java.lang.Object/root" + token.toString());
    Assert.assertNotNull(data1);
    Assert.assertNotNull(data2);
    Assert.assertEquals(1, data1.getCallCount());
    Assert.assertEquals(1, data2.getCallCount());
    Map<String, StatsBase> unscoped = stats.getUnscopedStats().getStatsMap();
    Assert.assertEquals(((ResponseTimeStats) unscoped.get("WebTransactionTotalTime")).getTotal(), data1.getTotal() + data2.getTotal(), .001);
}
Also used : ResponseTimeStats(com.newrelic.agent.stats.ResponseTimeStats) StatsBase(com.newrelic.agent.stats.StatsBase)

Example 20 with ResponseTimeStats

use of com.newrelic.agent.stats.ResponseTimeStats in project newrelic-java-agent by newrelic.

the class TransactionAsyncRootFirstTest method testStartAndThenLinkMultipleSameTokensExireOrig.

@Test
public void testStartAndThenLinkMultipleSameTokensExireOrig() throws InterruptedException {
    Transaction.clearTransaction();
    Transaction tx = Transaction.getTransaction();
    Tracer rootTracer = TransactionAsyncUtility.createDispatcherTracer(this, "hi");
    tx.getTransactionActivity().tracerStarted(rootTracer);
    TokenImpl token1 = (TokenImpl) tx.getToken();
    rootTracer.finish(Opcodes.RETURN, 0);
    StartAndThenLink activity1 = new StartAndThenLink(token1, false, false);
    activity1.start();
    activity1.join();
    StartAndThenLink activity2 = new StartAndThenLink(token1, true, false);
    activity2.start();
    activity2.join();
    token1.expire();
    waitForTransaction();
    TransactionAsyncUtility.basicDataVerify(data, stats, activity1, 3);
    Map<String, StatsBase> scoped = stats.getScopedStats().getStatsMap();
    ResponseTimeStats data1 = (ResponseTimeStats) scoped.get("RequestDispatcher");
    ResponseTimeStats data2 = (ResponseTimeStats) scoped.get("Java/java.lang.Object/root" + token1.toString());
    Assert.assertNotNull(data1);
    Assert.assertNotNull(data2);
    Assert.assertEquals(1, data1.getCallCount());
    Assert.assertEquals(2, data2.getCallCount());
    Map<String, StatsBase> unscoped = stats.getUnscopedStats().getStatsMap();
    Assert.assertEquals(((ResponseTimeStats) unscoped.get("WebTransactionTotalTime")).getTotal(), data1.getTotal() + data2.getTotal(), .001);
}
Also used : ResponseTimeStats(com.newrelic.agent.stats.ResponseTimeStats) Transaction(com.newrelic.agent.Transaction) TokenImpl(com.newrelic.agent.TokenImpl) Tracer(com.newrelic.agent.tracers.Tracer) StartAndThenLink(com.newrelic.agent.TransactionAsyncUtility.StartAndThenLink) StatsBase(com.newrelic.agent.stats.StatsBase) Test(org.junit.Test)

Aggregations

ResponseTimeStats (com.newrelic.agent.stats.ResponseTimeStats)28 Test (org.junit.Test)20 Transaction (com.newrelic.agent.Transaction)9 StatsBase (com.newrelic.agent.stats.StatsBase)9 Tracer (com.newrelic.agent.tracers.Tracer)9 TokenImpl (com.newrelic.agent.TokenImpl)6 StartAndThenLink (com.newrelic.agent.TransactionAsyncUtility.StartAndThenLink)6 TransactionStats (com.newrelic.agent.stats.TransactionStats)6 ExtendedRequest (com.newrelic.api.agent.ExtendedRequest)4 StatsEngine (com.newrelic.agent.stats.StatsEngine)3 OtherRootTracer (com.newrelic.agent.tracers.OtherRootTracer)3 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)3 TransactionDataList (com.newrelic.agent.TransactionDataList)2 ExitTracer (com.newrelic.agent.bridge.ExitTracer)2 MetricName (com.newrelic.agent.metric.MetricName)2 Stats (com.newrelic.agent.stats.Stats)2 DefaultTracer (com.newrelic.agent.tracers.DefaultTracer)2 PriorityTransactionName (com.newrelic.agent.transaction.PriorityTransactionName)2 Trace (com.newrelic.api.agent.Trace)2 MockServiceManager (com.newrelic.agent.MockServiceManager)1