use of com.newrelic.agent.stats.StatsEngine in project newrelic-java-agent by newrelic.
the class J2EEStatsAttributeTest method addJcaValueJdbcTest.
@Test
public void addJcaValueJdbcTest() throws MalformedObjectNameException {
JCAStats count = new JCAStats() {
@Override
public JCAConnectionStats[] getConnections() {
return new JCAConnectionStats[0];
}
@Override
public JCAConnectionPoolStats[] getConnectionPools() {
return new JCAConnectionPoolStats[] { new TestJcaConnectionPool() };
}
@Override
public Statistic getStatistic(String statisticName) {
return null;
}
@Override
public String[] getStatisticNames() {
return null;
}
@Override
public Statistic[] getStatistics() {
return new Statistic[0];
}
};
Attribute att = new Attribute("stats", count);
J2EEStatsAttributeProcessor processor = new J2EEStatsAttributeProcessor();
StatsEngine engine = new StatsEngineImpl();
processor.process(engine, new ObjectInstance("tezt:type=2", "test"), att, "JMX/Test", new HashMap<String, Float>());
// check count stats
Assert.assertEquals(6, engine.getStats("JMX/Test/Create").getTotal(), .001);
Assert.assertEquals(1, engine.getStats("JMX/Test/Create").getCallCount(), .001);
Assert.assertEquals(99, engine.getStats("JMX/Test/Closed").getTotal(), .001);
Assert.assertEquals(1, engine.getStats("JMX/Test/Closed").getCallCount(), .001);
// check time stats
Assert.assertEquals(10, engine.getResponseTimeStats("JMX/Test/Wait").getMaxCallTime(), .001);
Assert.assertEquals(5, engine.getResponseTimeStats("JMX/Test/Wait").getMinCallTime(), .001);
Assert.assertEquals(2, engine.getResponseTimeStats("JMX/Test/Wait").getCallCount(), .001);
Assert.assertEquals(6, engine.getResponseTimeStats("JMX/Test/User").getMaxCallTime(), .001);
Assert.assertEquals(4, engine.getResponseTimeStats("JMX/Test/User").getMinCallTime(), .001);
Assert.assertEquals(2, engine.getResponseTimeStats("JMX/Test/User").getCallCount(), .001);
}
use of com.newrelic.agent.stats.StatsEngine in project newrelic-java-agent by newrelic.
the class JmxMetricTest method jmxMetricRecordStatsSubTypeMonoMulti.
@Test
public void jmxMetricRecordStatsSubTypeMonoMulti() {
StatsEngine stats = new StatsEngineImpl();
JmxMetric metric = JmxMetric.create(new String[] { "first", "second" }, "theDiff", JmxAction.SUBTRACT_ALL_FROM_FIRST, JmxType.MONOTONICALLY_INCREASING);
Map<String, Float> values = new HashMap<>();
values.put("first", 10f);
values.put("second", 7f);
Map<String, Float> actual = new HashMap<>();
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(1, stats.getStats("Jmx/Sample/theDiff").getCallCount());
Assert.assertEquals(3f, stats.getStats("Jmx/Sample/theDiff").getTotal(), .001);
values.clear();
actual.clear();
values.put("first", 12f);
values.put("second", 5f);
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(2, stats.getStats("Jmx/Sample/theDiff").getCallCount());
Assert.assertEquals(7f, stats.getStats("Jmx/Sample/theDiff").getTotal(), .001);
}
use of com.newrelic.agent.stats.StatsEngine in project newrelic-java-agent by newrelic.
the class JmxMetricTest method jmxMetricRecordStatsMonotonicallyForMultiBean.
@Test
public void jmxMetricRecordStatsMonotonicallyForMultiBean() {
StatsEngine stats = new StatsEngineImpl();
JmxMetric metric = JmxMetric.create("hello", JmxType.MONOTONICALLY_INCREASING);
Map<String, Float> values = new HashMap<>();
values.put("hello", 5f);
Map<String, Float> actual = new HashMap<>();
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(1, stats.getStats("Jmx/Sample/hello").getCallCount());
Assert.assertEquals(5f, stats.getStats("Jmx/Sample/hello").getTotal(), 0);
values.clear();
actual.clear();
values.put("hello", 7f);
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(2, stats.getStats("Jmx/Sample/hello").getCallCount());
Assert.assertEquals(7f, stats.getStats("Jmx/Sample/hello").getTotal(), 0);
}
use of com.newrelic.agent.stats.StatsEngine in project newrelic-java-agent by newrelic.
the class JmxMetricTest method jmxMetricRecordStatsChangeNameSimpleMultiAdd.
@Test
public void jmxMetricRecordStatsChangeNameSimpleMultiAdd() {
StatsEngine stats = new StatsEngineImpl();
JmxMetric metric = JmxMetric.create("hello", "theHello", JmxType.SIMPLE);
Map<String, Float> values = new HashMap<>();
values.put("hello", 5f);
Map<String, Float> actual = new HashMap<>();
metric.applySingleMBean("Jmx/Sample/", values, actual);
Assert.assertEquals(0, stats.getStats("Jmx/Sample/theHello").getCallCount());
values.clear();
values.put("hello", 7f);
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(1, stats.getStats("Jmx/Sample/theHello").getCallCount());
Assert.assertEquals(12f, stats.getStats("Jmx/Sample/theHello").getTotal(), .001);
}
use of com.newrelic.agent.stats.StatsEngine in project newrelic-java-agent by newrelic.
the class JmxMetricTest method jmxMetricRecordStatsChangeNameSimpleMulti.
@Test
public void jmxMetricRecordStatsChangeNameSimpleMulti() {
StatsEngine stats = new StatsEngineImpl();
JmxMetric metric = JmxMetric.create("hello", "theHello", JmxType.SIMPLE);
Map<String, Float> values = new HashMap<>();
values.put("hello", 5f);
Map<String, Float> actual = new HashMap<>();
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(1, stats.getStats("Jmx/Sample/theHello").getCallCount());
Assert.assertEquals(5f, stats.getStats("Jmx/Sample/theHello").getTotal(), 0);
values.clear();
values.put("hello", 7f);
actual.clear();
metric.applySingleMBean("Jmx/Sample/", values, actual);
metric.recordMultMBeanStats(stats, actual);
Assert.assertEquals(2, stats.getStats("Jmx/Sample/theHello").getCallCount());
Assert.assertEquals(12f, stats.getStats("Jmx/Sample/theHello").getTotal(), .001);
}
Aggregations