Was this page helpful?
Caution
You're viewing documentation for an unstable version of Scylla Rust Driver. Switch to the latest stable version.
Tracing a simple/prepared/batch query¶
Unprepared statement, prepared statement and batch statement
execution return a QueryResult
which contains a tracing_id
if tracing was enabled.
Tracing an unprepared statement execution¶
use scylla::statement::unprepared::Statement;
use scylla::response::query_result::QueryResult;
use scylla::observability::tracing::TracingInfo;
use uuid::Uuid;
// Create a Statement manually and enable tracing
let mut statement: Statement = Statement::new("INSERT INTO ks.tab (a) VALUES(4)");
statement.set_tracing(true);
let res: QueryResult = session.query_unpaged(statement, &[]).await?;
let tracing_id: Option<Uuid> = res.tracing_id();
if let Some(id) = tracing_id {
// Query tracing info from system_traces.sessions and system_traces.events
let tracing_info: TracingInfo = session.get_tracing_info(&id).await?;
println!("tracing_info: {:#?}", tracing_info);
}
Tracing a prepared statement¶
use scylla::statement::prepared::PreparedStatement;
use scylla::response::query_result::QueryResult;
use scylla::observability::tracing::TracingInfo;
use uuid::Uuid;
// Prepare the statement
let mut prepared: PreparedStatement = session
.prepare("SELECT a FROM ks.tab")
.await?;
// Enable tracing for the prepared statement
prepared.set_tracing(true);
let res: QueryResult = session.execute_unpaged(&prepared, &[]).await?;
let tracing_id: Option<Uuid> = res.tracing_id();
if let Some(id) = tracing_id {
// Query tracing info from system_traces.sessions and system_traces.events
let tracing_info: TracingInfo = session.get_tracing_info(&id).await?;
println!("tracing_info: {:#?}", tracing_info);
}
Tracing a batch statement¶
use scylla::statement::batch::Batch;
use scylla::response::query_result::QueryResult;
use scylla::observability::tracing::TracingInfo;
use uuid::Uuid;
// Create a batch statement
let mut batch: Batch = Default::default();
batch.append_statement("INSERT INTO ks.tab (a) VALUES(4)");
// Enable tracing
batch.set_tracing(true);
let res: QueryResult = session.batch(&batch, ((),)).await?;
let tracing_id: Option<Uuid> = res.tracing_id();
if let Some(id) = tracing_id {
// Query tracing info from system_traces.sessions and system_traces.events
let tracing_info: TracingInfo = session.get_tracing_info(&id).await?;
println!("tracing_info: {:#?}", tracing_info);
}