com.datastax.driver.core
Class QueryTrace

java.lang.Object
  extended by com.datastax.driver.core.QueryTrace

public class QueryTrace
extends Object

The Cassandra trace for a query.

Such trace is generated by Cassandra when query tracing is enabled for the query. The trace itself is stored in Cassandra in the sessions and events table in the system_traces keyspace and can be retrieve manually using the trace identifier (the one returned by getTraceId()).

This class provides facilities to fetch the traces from Cassandra. Please note that the writing of the trace is done asynchronously in Cassandra. So accessing the trace too soon after the query may result in the trace being incomplete.


Nested Class Summary
static class QueryTrace.Event
          A trace event.
 
Method Summary
 InetAddress getCoordinator()
          The coordinator host of the query.
 int getDurationMicros()
          The (server side) duration of the query in microseconds.
 List<QueryTrace.Event> getEvents()
          The events contained in this trace.
 Map<String,String> getParameters()
          The parameters attached to this trace.
 String getRequestType()
          The type of request.
 long getStartedAt()
          The server side timestamp of the start of this query.
 UUID getTraceId()
          The identifier of this trace.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getTraceId

public UUID getTraceId()
The identifier of this trace.

Note that contrarily to the other methods in this class, this method does not entail fetching query trace details from Cassandra.

Returns:
the identifier of this trace.

getRequestType

public String getRequestType()
The type of request.

Returns:
the type of request. This method returns null if the request type is not yet available.
Throws:
TraceRetrievalException - if the trace details cannot be retrieve from Cassandra successfully.

getDurationMicros

public int getDurationMicros()
The (server side) duration of the query in microseconds.

Returns:
the (server side) duration of the query in microseconds. This method will return Integer.MIN_VALUE if the duration is not yet available.
Throws:
TraceRetrievalException - if the trace details cannot be retrieve from Cassandra successfully.

getCoordinator

public InetAddress getCoordinator()
The coordinator host of the query.

Returns:
the coordinator host of the query. This method returns null if the coordinator is not yet available.
Throws:
TraceRetrievalException - if the trace details cannot be retrieve from Cassandra successfully.

getParameters

public Map<String,String> getParameters()
The parameters attached to this trace.

Returns:
the parameters attached to this trace. This method returns null if the coordinator is not yet available.
Throws:
TraceRetrievalException - if the trace details cannot be retrieve from Cassandra successfully.

getStartedAt

public long getStartedAt()
The server side timestamp of the start of this query.

Returns:
the server side timestamp of the start of this query. This method returns 0 if the start timestamp is not available.
Throws:
TraceRetrievalException - if the trace details cannot be retrieve from Cassandra successfully.

getEvents

public List<QueryTrace.Event> getEvents()
The events contained in this trace.

Please note that query tracing is asynchronous in Cassandra. Hence, it is possible for the list returned to be missing some events for some of the replica involved in the query if the query trace is requested just after the return of the query it is a trace of (the only guarantee being that the list will contain the events pertaining to the coordinator of the query).

Returns:
the events contained in this trace.
Throws:
TraceRetrievalException - if the trace details cannot be retrieve from Cassandra successfully.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2013. All Rights Reserved.