/** * {@inheritDoc} */ @Override public String toString() { return "AbstractSpan [isCaller()=" + this.isCaller() + ", getSpanIdent()=" + this.getSpanIdent() + ", getDuration()=" + this.getDuration() + ", getPropagationType()=" + this.getPropagationType() + ", getReferenceType()=" + this.getReferenceType() + ", getParentSpanId()=" + this.getParentSpanId() + ", isRoot()=" + this.isRoot() + ", getTags()=" + this.getTags() + "]"; }
/** * {@inheritDoc} */ @Override public int compare(AbstractSpan o1, AbstractSpan o2, ICachedDataService cachedDataService) { switch (this) { case PROPAGATION_TYPE: return ObjectUtils.compare(o1.getPropagationType(), o2.getPropagationType()); case DURATION: return Double.compare(o1.getDuration(), o2.getDuration()); default: return 0; } }
span.setSpanIdent(ident); span.setTimeStamp(new Timestamp(timestampMillis)); span.setDuration(durationMillis); span.setParentSpanId(spanImpl.context().getParentId()); span.setReferenceType(spanImpl.context().getReferenceType()); span.addTag(ExtraTags.OPERATION_NAME, spanImpl.getOperationName()); span.setPropagationType(PropagationType.safeValueOf(propagation)); span.setMethodIdent(NumberUtils.toLong(methodId, 0)); String sensorId = spanImpl.getTags().get(ExtraTags.INSPECTT_SENSOR_ID); span.setSensorTypeIdent(NumberUtils.toLong(sensorId, 0)); span.addTag(entry.getKey(), entry.getValue());
@BeforeMethod public void initMocks() { doAnswer(new Answer<ScheduledFuture<Void>>() { @Override public ScheduledFuture<Void> answer(InvocationOnMock invocation) throws Throwable { ((Runnable) invocation.getArguments()[0]).run(); return null; } }).when(scheduledExecutor).schedule(any(Runnable.class), anyLong(), any()); when(backEndSpan.getPropagationType()).thenReturn(PropagationType.HTTP); when(backEndSpan.isRoot()).thenReturn(true); when(backEndSpan.getSpanIdent()).thenReturn(backEndIdent); when(frontEndSpan.getPropagationType()).thenReturn(PropagationType.HTTP); when(frontEndSpan.isRoot()).thenReturn(true); PageLoadRequest details = mock(PageLoadRequest.class); when(frontEndSpan.getDetails()).thenReturn(details); when(frontEndSpan.getDetails()).thenReturn(spanDetails); when(frontEndSpan.getSpanIdent()).thenReturn(frontEndIdent); }
@Test public void context() { when(spanImpl.context()).thenReturn(new SpanContextImpl(1, 2, 3, null, Collections.<String, String> emptyMap())); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); SpanIdent spanIdent = span.getSpanIdent(); assertThat(spanIdent.getId(), is(1L)); assertThat(spanIdent.getTraceId(), is(2L)); assertThat(span.getParentSpanId(), is(3L)); }
@Test public void propagation() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap(ExtraTags.PROPAGATION_TYPE, PropagationType.JMS.toString())); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getPropagationType(), is(PropagationType.JMS)); assertThat(span.getTags().size(), is(0)); }
@Test public void testBackEndSpanFirst() throws InterruptedException { when(spanDao.get(Matchers.eq(backEndIdent))).thenReturn(backEndSpan); processor.process(Collections.singleton(frontEndSpan), mock(EntityManager.class)); verify(backEndSpan, times(1)).setParentSpanId(eq(frontEndIdent.getId())); }
@Test public void duration() { double durationMicros = 123456.8856d; when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getDuration()).thenReturn(durationMicros); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getTimeStamp(), is(not(nullValue()))); assertThat(span.getDuration(), is(durationMicros / 1000.d)); }
invocationSequenceData.setSpanIdent(span.getSpanIdent());
@Test public void methodIdTagWrong() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap(ExtraTags.INSPECTT_METHOD_ID, "blabla")); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getMethodIdent(), is(0L)); assertThat(span.getTags().size(), is(0)); }
@Test public void sensorIdTagWrong() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap(ExtraTags.INSPECTT_SENSOR_ID, "blabla")); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getSensorTypeIdent(), is(0L)); assertThat(span.getTags().size(), is(0)); }
@Test public void tag() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap("key", "value")); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getTags().size(), is(1)); assertThat(span.getTags(), hasEntry("key", "value")); }
/** * Same as {@link #isRoot()}. Needed for querying. * * @return {@link #isRoot()} */ public boolean getRoot() { // NOPMD return isRoot(); }
@Test public void reference() { when(spanImpl.context()).thenReturn(SpanContextImpl.build(SpanContextImpl.build(), References.FOLLOWS_FROM, Collections.<String, String> emptyMap())); when(spanImpl.isClient()).thenReturn(false); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getReferenceType(), is(References.FOLLOWS_FROM)); }
span.setSpanIdent(new SpanIdent(1, 2)); invocationSequenceHook.addDefaultData(span);
@Test public void transformerInterface() { when(spanImpl.context()).thenReturn(new SpanContextImpl(1, 2, 3, null, Collections.<String, String> emptyMap())); AbstractSpan span = SpanTransformer.INSTANCE.transform(spanImpl); SpanIdent spanIdent = span.getSpanIdent(); assertThat(spanIdent.getId(), is(1L)); assertThat(spanIdent.getTraceId(), is(2L)); assertThat(span.getParentSpanId(), is(3L)); }
@Override public void run() { boolean reschedule = true; try { SpanIdent backEndSpanIdent = new SpanIdent(traceId, traceId); AbstractSpan backEndSpan = spanDao.get(backEndSpanIdent); if (backEndSpan != null) { backEndSpan.setParentSpanId(eumSpanId); reschedule = false; } } finally { if (reschedule) { schedule(false); // retry later } } }
@Test public void methodIdTag() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap(ExtraTags.INSPECTT_METHOD_ID, "7")); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getMethodIdent(), is(7L)); assertThat(span.getTags().size(), is(0)); }
@Test public void sensorIdTag() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap(ExtraTags.INSPECTT_SENSOR_ID, "7")); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getSensorTypeIdent(), is(7L)); assertThat(span.getTags().size(), is(0)); }
@Test public void spanKindIgnored() { when(spanImpl.context()).thenReturn(SpanContextImpl.build()); when(spanImpl.getTags()).thenReturn(Collections.singletonMap(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER)); AbstractSpan span = SpanTransformer.transformSpan(spanImpl); assertThat(span.getTags().size(), is(0)); }