@Test public void testExceptions() { Exception exception = new IOException("mocka", new IllegalArgumentException("mockb")); ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(exception); assertThat(exceptionTelemetry.getExceptions(), hasSize(2)); }
@Test public void testCtor() { NullPointerException exception = new NullPointerException("mock"); ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(exception); assertSame(exception, exceptionTelemetry.getException()); assertTrue(exceptionTelemetry.getProperties().isEmpty()); assertTrue(exceptionTelemetry.getMetrics().isEmpty()); assertThat(exceptionTelemetry.getExceptions(), hasSize(1)); }
@Override public Telemetry apply(BaseTelemetry bt) { Preconditions.checkNotNull(bt); ExceptionTelemetry t = (ExceptionTelemetry) bt; final Exception.Builder eb = Exception.newBuilder() .setVer(t.getVer()); final SeverityLevel sl = transformSeverityLevel(t.getSeverityLevel()); if (sl != SeverityLevel.UNRECOGNIZED) eb.setSeverityLevel(sl); if (t.getProblemId() != null) eb.setProblemId(t.getProblemId()); if (t.getProperties() != null) eb.putAllProperties(t.getProperties()); if (t.getMetrics() != null) eb.putAllMeasurements(t.getMetrics()); if (t.getExceptions() != null) eb.addAllExceptions(Iterables.transform(t.getExceptions(), EXCEPTION_DETAILS_TRANSFORMER_FUNCTION)); return telemetryBuilderWithStandardFields(t).setException(eb).build(); } });
private static Iterable<? extends ExceptionDetails> buildExceptionDetails(final ExceptionTelemetry et) { Collection<ExceptionDetails> details = new ArrayList<>(); List<com.microsoft.applicationinsights.internal.schemav2.ExceptionDetails> exceptions = et.getExceptions(); for (com.microsoft.applicationinsights.internal.schemav2.ExceptionDetails ed : exceptions) { ExceptionDetails.Builder edb = ExceptionDetails.newBuilder() .setHasFullStack(BoolValue.of(ed.getHasFullStack())) .setId(ed.getId()) .setOuterId(ed.getOuterId()); if (ed.getMessage() != null) edb.setMessage(ed.getMessage()); if (ed.getTypeName() != null) edb.setTypeName(ed.getTypeName()); if (ed.getStack() != null) edb.setStack(ed.getStack()); if (ed.getParsedStack() != null) { for (com.microsoft.applicationinsights.internal.schemav2.StackFrame sf : ed.getParsedStack()) { StackFrame.Builder sfb = StackFrame.newBuilder() .setLine(sf.getLine()) .setMethod(sf.getMethod()) .setLevel(sf.getLevel()); if (sf.getFileName() != null) sfb.setFileName(sf.getFileName()); if (sf.getAssembly() != null) sfb.setAssembly(sf.getAssembly()); edb.addParsedStack(sfb); } } details.add(edb.build()); } return details; }