/** * @return {@link OpenTracingHttpTagStrategy#getDefaultInstance()}. */ protected HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> getOpenTracingHttpTagStrategy() { return OpenTracingHttpTagStrategy.getDefaultInstance(); }
/** * @return {@link NoOpHttpTagStrategy#getDefaultInstance()}. */ protected HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> getNoOpTagStrategy() { return NoOpHttpTagStrategy.getDefaultInstance(); }
@SuppressWarnings("WeakerAccess") protected void addErrorTagToSpan(Span span, String errorTagValue) { putTagIfValueIsNotBlank(span, KnownZipkinTags.ERROR, errorTagValue); } }
/** * @return {@link ZipkinHttpTagStrategy#getDefaultInstance()}. */ protected HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> getZipkinHttpTagStrategy() { return ZipkinHttpTagStrategy.getDefaultInstance(); }
@Override public void doHandleRequestTagging( @NotNull Span span, @NotNull RequestInfo<?> request ) { tagAndNamingStrategy.handleRequestTagging(span, request, tagAndNamingAdapter); }
@Override protected void doHandleRequestTagging( @NotNull Span span, @NotNull REQ request, @NotNull HttpTagAndSpanNamingAdapter<REQ, ?> adapter ) { putTagIfValueIsNotBlank(span, KnownZipkinTags.HTTP_METHOD, adapter.getRequestHttpMethod(request)); putTagIfValueIsNotBlank(span, KnownZipkinTags.HTTP_PATH, adapter.getRequestPath(request)); putTagIfValueIsNotBlank(span, KnownZipkinTags.HTTP_URL, adapter.getRequestUrl(request)); putTagIfValueIsNotBlank(span, KnownZipkinTags.HTTP_ROUTE, adapter.getRequestUriPathTemplate(request, null)); }
WingtipsRequestSpanCompletionAsyncListener( TracingState originalRequestTracingState, HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> tagAndNamingStrategy, HttpTagAndSpanNamingAdapter<HttpServletRequest, HttpServletResponse> tagAndNamingAdapter ) { this.originalRequestTracingState = originalRequestTracingState; // We should never get a null tag strategy or tag adapter in reality, but just in case we do, default to // the no-op impls. if (tagAndNamingStrategy == null) { tagAndNamingStrategy = NoOpHttpTagStrategy.getDefaultInstance(); } if (tagAndNamingAdapter == null) { tagAndNamingAdapter = NoOpHttpTagAdapter.getDefaultInstance(); } this.tagAndNamingStrategy = tagAndNamingStrategy; this.tagAndNamingAdapter = tagAndNamingAdapter; }
@Override protected void doHandleRequestTagging( @NotNull Span span, @NotNull REQ request, @NotNull HttpTagAndSpanNamingAdapter<REQ, ?> adapter ) { putTagIfValueIsNotBlank(span, KnownOpenTracingTags.HTTP_METHOD, adapter.getRequestHttpMethod(request)); putTagIfValueIsNotBlank(span, KnownOpenTracingTags.HTTP_URL, adapter.getRequestUrl(request)); }
/** * Creates a new instance that uses {@link ZipkinHttpTagStrategy#getDefaultInstance()} and {@link * RiposteWingtipsNettyClientTagAdapter#getDefaultInstance()} to do the work of span naming and tagging. */ public DefaultRiposteProxyRouterSpanNamingAndTaggingStrategy() { this(ZipkinHttpTagStrategy.getDefaultInstance(), RiposteWingtipsNettyClientTagAdapter.getDefaultInstance()); }
@Override protected void doHandleRequestTagging(@NotNull Span span, @NotNull HttpRequest request) { tagAndNamingStrategy.handleRequestTagging(span, request, tagAndNamingAdapter); }
/** * Creates a new instance that uses {@link ZipkinHttpTagStrategy#getDefaultInstance()} and {@link * RiposteWingtipsNettyClientTagAdapter#getDefaultInstance()} to do the work of span naming and tagging. */ public DefaultRiposteProxyRouterSpanNamingAndTaggingStrategy() { this(ZipkinHttpTagStrategy.getDefaultInstance(), RiposteWingtipsNettyClientTagAdapter.getDefaultInstance()); }
@Override public void doHandleRequestTagging( @NotNull Span span, @NotNull RequestInfo<?> request ) { tagAndNamingStrategy.handleRequestTagging(span, request, tagAndNamingAdapter); }
/** * Creates a new instance that uses {@link ZipkinHttpTagStrategy#getDefaultInstance()} and {@link * RiposteWingtipsServerTagAdapter#getDefaultInstance()} to do the work of span naming and tagging. */ public DefaultRiposteServerSpanNamingAndTaggingStrategy() { this(ZipkinHttpTagStrategy.getDefaultInstance(), RiposteWingtipsServerTagAdapter.getDefaultInstance()); }
@Override public void doHandleRequestTagging( @NotNull Span span, @NotNull RequestBuilderWrapper request ) { tagAndNamingStrategy.handleRequestTagging(span, request, tagAndNamingAdapter); }
/** * Creates a new instance that uses {@link ZipkinHttpTagStrategy#getDefaultInstance()} and {@link * RiposteWingtipsServerTagAdapter#getDefaultInstance()} to do the work of span naming and tagging. */ public DefaultRiposteServerSpanNamingAndTaggingStrategy() { this(ZipkinHttpTagStrategy.getDefaultInstance(), RiposteWingtipsServerTagAdapter.getDefaultInstance()); }
@Override protected void doHandleRequestTagging(@NotNull Span span, @NotNull HttpRequest request) { tagAndNamingStrategy.handleRequestTagging(span, request, tagAndNamingAdapter); }
/** * Creates a new instance that uses {@link ZipkinHttpTagStrategy#getDefaultInstance()} and {@link * AsyncHttpClientHelperTagAdapter#getDefaultInstance()} to do the work of span naming and tagging. */ public DefaultAsyncHttpClientHelperSpanNamingAndTaggingStrategy() { this(ZipkinHttpTagStrategy.getDefaultInstance(), AsyncHttpClientHelperTagAdapter.getDefaultInstance()); }
/** * Constructor that lets you choose whether downstream calls will be surrounded with a subspan. The default * {@link HttpTagAndSpanNamingStrategy} and {@link HttpTagAndSpanNamingAdapter} will be used * ({@link ZipkinHttpTagStrategy} and {@link SpringHttpClientTagAdapter}). * * @param surroundCallsWithSubspan pass in true to have downstream calls surrounded with a new span, false to only * propagate the current span's info downstream (no subspan). */ public WingtipsAsyncClientHttpRequestInterceptor(boolean surroundCallsWithSubspan) { this( surroundCallsWithSubspan, ZipkinHttpTagStrategy.<HttpRequest, ClientHttpResponse>getDefaultInstance(), SpringHttpClientTagAdapter.getDefaultInstance() ); }
/** * Creates a new instance with the subspan option set to the value of the {@code surroundCallsWithSubspan} * argument, and the default {@link HttpTagAndSpanNamingStrategy} and {@link HttpTagAndSpanNamingAdapter} * ({@link ZipkinHttpTagStrategy} and {@link ApacheHttpClientTagAdapter}). * * @param surroundCallsWithSubspan Pass in true to have requests surrounded in a subspan, false to disable the * subspan option. */ public WingtipsApacheHttpClientInterceptor(boolean surroundCallsWithSubspan) { this( surroundCallsWithSubspan, ZipkinHttpTagStrategy.<HttpRequest, HttpResponse>getDefaultInstance(), ApacheHttpClientTagAdapter.getDefaultInstance() ); }
/** * Constructor that lets you choose whether downstream calls will be surrounded with a subspan. The default * {@link HttpTagAndSpanNamingStrategy} and {@link HttpTagAndSpanNamingAdapter} will be used * ({@link ZipkinHttpTagStrategy} and {@link SpringHttpClientTagAdapter}). * * @param surroundCallsWithSubspan pass in true to have downstream calls surrounded with a new span, false to only * propagate the current span's info downstream (no subspan). */ public WingtipsClientHttpRequestInterceptor(boolean surroundCallsWithSubspan) { this( surroundCallsWithSubspan, ZipkinHttpTagStrategy.<HttpRequest, ClientHttpResponse>getDefaultInstance(), SpringHttpClientTagAdapter.getDefaultInstance() ); }