ScyllaDB Documentation Logo Documentation
  • Server
    • ScyllaDB Open Source
    • ScyllaDB Enterprise
    • ScyllaDB Alternator
  • Cloud
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
Download
Menu
ScyllaDB Docs Scylla Rust Driver Query tracing

Query tracing¶

The driver has utilites for monitoring the execution of queries. There are two separate ways to get information about what happened with a query: Tracing and Query Execution History.

Tracing¶

Tracing is a feature provided by Scylla. When sending a query we can set a flag that signifies that we would like it to be traced. After completing the query Scylla provides a tracing_id which can be used to fetch information about it - which nodes it was sent to, what operations were performed etc.

Queries that support tracing:

  • Session::query()

  • Session::query_iter()

  • Session::execute()

  • Session::execute_iter()

  • Session::batch()

  • Session::prepare()

After obtaining the tracing id you can use Session::get_tracing_info() to query tracing information.
TracingInfo contains values that are the same in Scylla and Cassandra®, skipping any database-specific ones.
If TracingInfo does not contain some needed value it’s possible to query it manually from the tables system_traces.sessions and system_traces.events

Query Execution History¶

Tracing provides information about how the query execution went on database nodes, but it doesn’t say anything about what was going on inside the driver.
This is what query execution history was made for.

It allows to follow what the driver was thinking - all query attempts, retry decisions, speculative executions. More information is available in the Query Execution History chapter.

PREVIOUS
Logging
NEXT
Tracing a simple/prepared/batch query
Scylla Rust Driver
  • main
    • main
  • Scylla Rust Driver
  • Quick Start
    • Creating a project
    • Connecting and running a simple query
    • Running Scylla using Docker
  • Connecting to the cluster
    • Compression
    • Authentication
    • TLS
  • Making queries
    • Simple query
    • Query values
    • Query result
    • Prepared query
    • Batch statement
    • Paged query
    • USE keyspace
    • Schema agreement
    • Lightweight transaction (LWT) query
    • Query timeouts
  • Execution profiles
    • Creating a profile and setting it
    • All options supported by a profile
    • Priorities of execution settings
    • Remapping execution profile handles
  • Data Types
    • Bool, Tinyint, Smallint, Int, Bigint, Float, Double
    • Ascii, Text, Varchar
    • Counter
    • Blob
    • Inet
    • Uuid, Timeuuid
    • Date
    • Time
    • Timestamp
    • Duration
    • Decimal
    • Varint
    • List, Set, Map
    • Tuple
    • User defined types
  • Load balancing
    • DefaultPolicy
  • Retry policy configuration
    • Fallthrough retry policy
    • Default retry policy
    • Downgrading consistency retry policy
  • Speculative execution
    • Simple speculative execution
    • Percentile speculative execution
  • Driver metrics
  • Logging
  • Query tracing
    • Tracing a simple/prepared/batch query
    • Tracing a paged query
    • Tracing Session::prepare
    • Query Execution History
  • Schema
  • Create an issue
  • Edit this page

On this page

  • Query tracing
    • Tracing
    • Query Execution History
Logo
Docs Contact Us About Us
Mail List Icon Slack Icon Forum Icon
© 2023, ScyllaDB. All rights reserved.
Last updated on 22 March 2023.
Powered by Sphinx 4.3.2 & ScyllaDB Theme 1.3.5