public final class TracingChannelInterceptor
extends org.springframework.messaging.support.ChannelInterceptorAdapter
implements org.springframework.messaging.support.ExecutorChannelInterceptor
Span.Kind#PRODUCER span for each message sent (via native
headers. It also extracts or creates a Span.Kind#CONSUMER span for each message
received. This span is injected onto each message so it becomes the parent when a handler later
calls MessageHandler.handleMessage(Message), or a another processing library calls nextSpan(Message).
This implementation uses ThreadLocalSpan to propagate context between callbacks. This
is an alternative to ThreadStatePropagationChannelInterceptor which is less sensitive
to message manipulation by other interceptors.
| Modifier and Type | Method and Description |
|---|---|
void |
afterMessageHandled(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
org.springframework.messaging.MessageHandler handler,
Exception ex) |
void |
afterReceiveCompletion(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
Exception ex) |
void |
afterSendCompletion(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
boolean sent,
Exception ex) |
org.springframework.messaging.Message<?> |
beforeHandle(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
org.springframework.messaging.MessageHandler handler)
This starts a consumer span as a child of the incoming message or the current trace context.
|
static TracingChannelInterceptor |
create(brave.Tracing tracing) |
brave.Span |
nextSpan(org.springframework.messaging.Message<?> message)
Use this to create a span for processing the given message.
|
org.springframework.messaging.Message<?> |
postReceive(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel)
This starts a consumer span as a child of the incoming message or the current trace context,
placing it in scope until the receive completes.
|
org.springframework.messaging.Message<?> |
preSend(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel)
Starts and propagates
Span.Kind#PRODUCER span for each message sent. |
postSend, preReceivepublic static TracingChannelInterceptor create(brave.Tracing tracing)
public brave.Span nextSpan(org.springframework.messaging.Message<?> message)
This creates a child from identifiers extracted from the message headers, or a new span if one couldn't be extracted.
public org.springframework.messaging.Message<?> preSend(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel)
Span.Kind#PRODUCER span for each message sent.preSend in interface org.springframework.messaging.support.ChannelInterceptorpreSend in class org.springframework.messaging.support.ChannelInterceptorAdapterpublic void afterSendCompletion(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
boolean sent,
Exception ex)
afterSendCompletion in interface org.springframework.messaging.support.ChannelInterceptorafterSendCompletion in class org.springframework.messaging.support.ChannelInterceptorAdapterpublic org.springframework.messaging.Message<?> postReceive(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel)
postReceive in interface org.springframework.messaging.support.ChannelInterceptorpostReceive in class org.springframework.messaging.support.ChannelInterceptorAdapterpublic void afterReceiveCompletion(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
Exception ex)
afterReceiveCompletion in interface org.springframework.messaging.support.ChannelInterceptorafterReceiveCompletion in class org.springframework.messaging.support.ChannelInterceptorAdapterpublic org.springframework.messaging.Message<?> beforeHandle(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
org.springframework.messaging.MessageHandler handler)
beforeHandle in interface org.springframework.messaging.support.ExecutorChannelInterceptorpublic void afterMessageHandled(org.springframework.messaging.Message<?> message,
org.springframework.messaging.MessageChannel channel,
org.springframework.messaging.MessageHandler handler,
Exception ex)
afterMessageHandled in interface org.springframework.messaging.support.ExecutorChannelInterceptorCopyright © 2018 Pivotal Software, Inc.. All rights reserved.