Package org.apache.cassandra.tracing
Class Tracing
- java.lang.Object
-
- org.apache.cassandra.concurrent.ExecutorLocals.Impl
-
- org.apache.cassandra.tracing.Tracing
-
public abstract class Tracing extends ExecutorLocals.Impl
A trace session context. Able to track and store trace sessions. A session is usually a user initiated query, and may have multiple local and remote events before it is completed.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTracing.TraceType
-
Field Summary
Fields Modifier and Type Field Description static Tracinginstanceprotected static org.slf4j.Loggerloggerprotected java.util.concurrent.ConcurrentMap<TimeUUID,TraceState>sessionsstatic IVersionedSerializer<Tracing.TraceType>traceTypeSerializer
-
Constructor Summary
Constructors Constructor Description Tracing()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.util.Map<ParamType,java.lang.Object>addTraceHeaders(java.util.Map<ParamType,java.lang.Object> addToMutable)abstract TraceStatebegin(java.lang.String request, java.net.InetAddress client, java.util.Map<java.lang.String,java.lang.String> parameters)TraceStatebegin(java.lang.String request, java.util.Map<java.lang.String,java.lang.String> parameters)voiddoneWithNonLocalSession(TraceState state)TraceStateget()TraceStateget(TimeUUID sessionId)TimeUUIDgetSessionId()Tracing.TraceTypegetTraceType()intgetTTL()TraceStateinitializeFromMessage(Message.Header header)Determines the tracing context from a message.static booleanisTracing()Indicates if the current thread's execution is being traced.TimeUUIDnewSession(java.util.Map<java.lang.String,java.nio.ByteBuffer> customPayload)TimeUUIDnewSession(Tracing.TraceType traceType)TimeUUIDnewSession(TimeUUID sessionId, java.util.Map<java.lang.String,java.nio.ByteBuffer> customPayload)protected TimeUUIDnewSession(TimeUUID sessionId, Tracing.TraceType traceType, java.util.Map<java.lang.String,java.nio.ByteBuffer> customPayload)This method is intended to be overridden in tracing implementations that need access to the customPayloadprotected abstract TraceStatenewTraceState(InetAddressAndPort coordinator, TimeUUID sessionId, Tracing.TraceType traceType)voidset(TraceState tls)voidstopSession()Stop the session and record its complete.protected abstract voidstopSessionImpl()static voidtrace(java.lang.String message)static voidtrace(java.lang.String format, java.lang.Object arg)static voidtrace(java.lang.String format, java.lang.Object... args)static voidtrace(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)abstract voidtrace(java.nio.ByteBuffer sessionId, java.lang.String message, int ttl)Called for non-local traces (traces that are not initiated by local node == coordinator).voidtraceOutgoingMessage(Message<?> message, int serializedSize, InetAddressAndPort sendTo)Record any tracing data, if enabled on this message.static voidtraceRepair(java.lang.String format, java.lang.Object... args)-
Methods inherited from class org.apache.cassandra.concurrent.ExecutorLocals.Impl
set
-
-
-
-
Field Detail
-
traceTypeSerializer
public static final IVersionedSerializer<Tracing.TraceType> traceTypeSerializer
-
logger
protected static final org.slf4j.Logger logger
-
sessions
protected final java.util.concurrent.ConcurrentMap<TimeUUID,TraceState> sessions
-
instance
public static final Tracing instance
-
-
Method Detail
-
getSessionId
public TimeUUID getSessionId()
-
getTraceType
public Tracing.TraceType getTraceType()
-
getTTL
public int getTTL()
-
isTracing
public static boolean isTracing()
Indicates if the current thread's execution is being traced.
-
newSession
public TimeUUID newSession(java.util.Map<java.lang.String,java.nio.ByteBuffer> customPayload)
-
newSession
public TimeUUID newSession(Tracing.TraceType traceType)
-
newSession
public TimeUUID newSession(TimeUUID sessionId, java.util.Map<java.lang.String,java.nio.ByteBuffer> customPayload)
-
newSession
protected TimeUUID newSession(TimeUUID sessionId, Tracing.TraceType traceType, java.util.Map<java.lang.String,java.nio.ByteBuffer> customPayload)
This method is intended to be overridden in tracing implementations that need access to the customPayload
-
doneWithNonLocalSession
public void doneWithNonLocalSession(TraceState state)
-
stopSession
public void stopSession()
Stop the session and record its complete. Called by coodinator when request is complete.
-
stopSessionImpl
protected abstract void stopSessionImpl()
-
get
public TraceState get()
-
get
public TraceState get(TimeUUID sessionId)
-
set
public void set(TraceState tls)
-
begin
public TraceState begin(java.lang.String request, java.util.Map<java.lang.String,java.lang.String> parameters)
-
begin
public abstract TraceState begin(java.lang.String request, java.net.InetAddress client, java.util.Map<java.lang.String,java.lang.String> parameters)
-
initializeFromMessage
public TraceState initializeFromMessage(Message.Header header)
Determines the tracing context from a message. Does NOT set the threadlocal state.- Parameters:
header- The internode message header
-
traceOutgoingMessage
public void traceOutgoingMessage(Message<?> message, int serializedSize, InetAddressAndPort sendTo)
Record any tracing data, if enabled on this message.
-
addTraceHeaders
public java.util.Map<ParamType,java.lang.Object> addTraceHeaders(java.util.Map<ParamType,java.lang.Object> addToMutable)
-
newTraceState
protected abstract TraceState newTraceState(InetAddressAndPort coordinator, TimeUUID sessionId, Tracing.TraceType traceType)
-
traceRepair
public static void traceRepair(java.lang.String format, java.lang.Object... args)
-
trace
public static void trace(java.lang.String message)
-
trace
public static void trace(java.lang.String format, java.lang.Object arg)
-
trace
public static void trace(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
-
trace
public static void trace(java.lang.String format, java.lang.Object... args)
-
trace
public abstract void trace(java.nio.ByteBuffer sessionId, java.lang.String message, int ttl)Called for non-local traces (traces that are not initiated by local node == coordinator).
-
-