Struct seella::Session

source ·
pub struct Session {
    pub id: Uuid,
    pub client: IpAddr,
    pub command: String,
    pub coordinator: IpAddr,
    pub duration: Duration,
    pub parameters: String,
    pub request: String,
    pub started_at: DateTime<Utc>,
    pub request_size: Option<u32>,
    pub response_size: Option<u32>,
    pub username: Option<String>,
    /* private fields */
}
Expand description

All of the information related to a single tracing session.

This is effectively:

SELECT * FROM system_traces.sessions WHERE session_id=227aff60-4f21-11e6-8835-000000000000
JOIN
SELECT * FROM system_traces.events WHERE session_id=227aff60-4f21-11e6-8835-000000000000

This gives us all possible tracing information for a single session, where that session may be a single query, or some other command.

Events can be accessed through the Session::events() method, and these will be presented depth-first; i.e. we provide the children of the first root trace before moving on to the second root trace.

Fields§

§id: Uuid

The UUID of the Session

§client: IpAddr

The IP address of the connecting client

§command: String

Currently, this can only be “QUERY”

§coordinator: IpAddr

The IP address of the coordinating Scylla Node

§duration: Duration

Total duration of the Session

§parameters: String

A scylla map containing string pairs that describe the query

§request: String

A short string decribing the Session. Is not the CQL query being ran; that is in parameters.

§started_at: DateTime<Utc>

DateTime of the start of this tracing session

§request_size: Option<u32>

Size of the request Since Scylla 3.0 Not present in Cassandra

§response_size: Option<u32>

Size of the response Since Scylla 3.0 Not present in Cassandra

§username: Option<String>

The username associated with the request? Lacking documentation. Not present in Cassandra

Implementations§

source§

impl Session

source

pub fn event_count(&self) -> usize

Recurses the tree of events without needing to allocate or otherwise work too hard.

source

pub fn events(&self) -> Vec<(&Event, usize)>

Depth-first recursion of all events in the tree.

source

pub fn total_duration(&self) -> i64

Returns the total duration of the trace.

Given by summing the total durations of all root traces.

source

pub fn display(&self, cli: Cli, w: &mut dyn Write) -> Result<()>

Trait Implementations§

source§

impl Debug for Session

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more