RequestMonitor { public void recordException(Exception e) { if (! corePlugin.isStagemonitorActive()) { return; } final Span activeSpan = tracingPlugin.getTracer().scopeManager().activeSpan(); if (activeSpan != null) { SpanUtils.setException(activeSpan, e, tracingPlugin.getIgnoreExceptions(), tracingPlugin.getUnnestExceptions()); } } RequestMonitor(ConfigurationRegistry configuration, Metric2Registry registry); private  RequestMonitor(ConfigurationRegistry configuration, Metric2Registry registry, TracingPlugin tracingPlugin); SpanContextInformation monitorStart(MonitoredRequest monitoredRequest); void monitorStop(); SpanContextInformation monitor(MonitoredRequest monitoredRequest); void recordException(Exception e);  }
@Test public void testRecordException() throws Exception { final MonitoredRequest monitoredRequest = createMonitoredRequest(); doThrow(new RuntimeException("test")).when(monitoredRequest).execute(); try { requestMonitor.monitor(monitoredRequest); } catch (Exception e) { } assertEquals("java.lang.RuntimeException", tags.get("exception.class")); assertEquals("test", tags.get("exception.message")); assertNotNull(tags.get("exception.stack_trace")); }