public DummyEventTimer() { super("dummy", new MonitorableRegistry(), ThreadMetricSuite.blank(), false, false, Collections.<StepMeasurementSink>emptyList()); }
public static void main(String[] args) throws InterruptedException { ThreadMetricSuite suite = ThreadMetricSuite.blank(); suite.addMetric(StandardThreadMetrics.CLOCK_TIME); suite.addMetric(StandardThreadMetrics.BLOCKED_TIME); suite.addMetric(StandardThreadMetrics.WAITED_TIME); suite.addMetric(StandardThreadMetrics.USER_CPU_TIME); EventTimer timer = new EventTimer("blah", new MonitorableRegistry(), suite, true, true, Collections.<StepMeasurementSink>singletonList(new LoggerSink())); ThreadContext context = new ThreadContext(); EmailSender sender = new EmailSender(context); CheckoutBuyer buyer = new CheckoutBuyer(context); timer.registerTimeable(sender, "sendEmail"); timer.registerTimeable(buyer, "buySomething"); Thread t1 = new Thread(sender); Thread t2 = new Thread(buyer); t1.start(); t2.start(); InProgressExporter exporter = new InProgressExporter(timer, context); for (int i = 1; i <= 5; i++) { Thread.sleep(5000); InProgressSnapshot snapshot = exporter.getSnapshot(); System.out.println(snapshot.asFormattedString()); } t1.join(); t2.join(); }
@Test public void testValuesConvertedToStringsForExport() { ThreadContext context = new ThreadContext(); context.put("stringvalue", "floop"); context.put("intvalue", 99); Timeable t = new Timeable() { @Override public void setEventTimer(EventTimer timer) { } }; EventTimer timer = new EventTimer("foo", new MonitorableRegistry(), ThreadMetricSuite.blank(), false, false, Collections.<StepMeasurementSink>singletonList(new LoggerSink())); timer.registerTimeable(t, "foo"); timer.getCollector().startTiming(t, "stuff"); InProgressSnapshot snapshot = InProgressSnapshot.capture(timer, context); TabularData data = JmxInProgressMonitor.TO_TABULAR_DATA.apply(snapshot); assertEquals(SimpleType.STRING, data.getTabularType().getRowType().getType("stringvalue")); assertEquals(SimpleType.STRING, data.getTabularType().getRowType().getType("intvalue")); }