@Override public String name(Object object, String defaultValue) { SpanName annotation = annotation(object); String spanName = annotation != null ? annotation.value() : object.toString(); // If there is no overridden toString method we'll put a constant value if (isDefaultToString(object, spanName)) { return defaultValue; } return spanName; }
@Bean @ConditionalOnMissingBean SpanNamer sleuthSpanNamer() { return new DefaultSpanNamer(); }
@Override public void report(Span span) { Span spanToAdjust = span; for (SpanAdjuster spanAdjuster : this.spanAdjusters) { spanToAdjust = spanAdjuster.adjust(spanToAdjust); } this.spanReporter.report(spanToAdjust); }
private static Span sampledSpan(Span span, Sampler sampler) { if (!sampler.isSampled(span)) { // Copy everything, except set exportable to false return Span.builder() .begin(span.getBegin()) .traceIdHigh(span.getTraceIdHigh()) .traceId(span.getTraceId()) .spanId(span.getSpanId()) .name(span.getName()) .exportable(false) .build(); } return span; }
private static org.springframework.cloud.sleuth.Span createSleuthSpan( long tidHi, long tidLo, long sid, boolean exportable) { return org.springframework.cloud.sleuth.Span.builder() .name("name") .traceIdHigh(tidHi) .traceId(tidLo) .spanId(sid) .exportable(exportable) .build(); }
@Override public String getRequestId() { return String.valueOf(spanAccessor.getCurrentSpan().getSpanId()); } }
/** * Operation id is id of service call itself, its always presents and always unique for this service call * @return operation id */ @Override public UUID getOperationId() { ContextVerifier.assertWithinContext(); return UUID.fromString(TraceContextHolder.getCurrentSpan().getSpanId()); }
/** * Process id is id of process uniting several operations, logically defining some complete execution * including several service calls * @return id of process */ @Override public UUID getProcessId() { ContextVerifier.assertWithinContext(); return UUID.fromString(TraceContextHolder.getCurrentSpan().getTraceId()); }
@Override public void doFilter(ServletRequest request, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) servletResponse; Span currentSpan = this.tracer.getCurrentSpan(); this.spanInjector.inject(currentSpan, response); filterChain.doFilter(request, response); } }
@SuppressWarnings("deprecation") private static Span createContinuedSpan(Span span, /*@Nullable*/ Span saved) { if (saved == null && span.getSavedSpan() != null) { saved = span.getSavedSpan(); } return new Span(span, saved); }
String name(ProceedingJoinPoint pjp) { return this.spanNamer.name(getMethod(pjp, pjp.getTarget()), SpanNameUtil.toLowerHyphen(pjp.getSignature().getName())); }
private String formatTraceId(Span span) { return span.traceIdString(); }
public TraceCallable(Tracing tracing, SpanNamer spanNamer, Callable<V> delegate, String name) { this.tracer = tracing.tracer(); this.delegate = delegate; this.parent = tracing.currentTraceContext().get(); this.spanName = name != null ? name : spanNamer.name(delegate, DEFAULT_SPAN_NAME); }
@Override public String name(Object object, String defaultValue) { SpanName annotation = annotation(object); String spanName = annotation != null ? annotation.value() : object.toString(); // If there is no overridden toString method we'll put a constant value if (isDefaultToString(object, spanName)) { return defaultValue; } return spanName; }
private SpanNamer spanNamer() { if (this.spanNamer == null) { try { this.spanNamer = this.beanFactory.getBean(SpanNamer.class); } catch (NoSuchBeanDefinitionException e) { log.warn( "SpanNamer bean not found - will provide a manually created instance"); return new DefaultSpanNamer(); } } return this.spanNamer; }
public TraceRunnable(Tracing tracing, SpanNamer spanNamer, Runnable delegate, String name) { this.tracer = tracing.tracer(); this.delegate = delegate; this.parent = tracing.currentTraceContext().get(); this.spanName = name != null ? name : spanNamer.name(delegate, DEFAULT_SPAN_NAME); }
private TraceSpan.SpanKind getKind(Span span) { for (Log log : span.logs()) { if (Span.CLIENT_SEND.equals(log.getEvent()) || Span.CLIENT_RECV.equals(log.getEvent())) { return TraceSpan.SpanKind.RPC_CLIENT; } else if (Span.SERVER_RECV.equals(log.getEvent()) || Span.SERVER_SEND.equals(log.getEvent())) { return TraceSpan.SpanKind.RPC_SERVER; } } return TraceSpan.SpanKind.SPAN_KIND_UNSPECIFIED; }
private SpanNamer spanNamer() { if (this.spanNamer == null) { try { this.spanNamer = this.beanFactory.getBean(SpanNamer.class); } catch (NoSuchBeanDefinitionException e) { log.warn( "SpanNamer bean not found - will provide a manually created instance"); return new DefaultSpanNamer(); } } return this.spanNamer; }