Skip to content

Commit 2dc8432

Browse files
authored
Merge pull request #526 from cvybhu/get_traced
tracing: Get list of nodes from TracingInfo
2 parents 0f33e3c + 7a1752e commit 2dc8432

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

scylla/src/tracing.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use crate::statement::Consistency;
2+
use itertools::Itertools;
23
use std::collections::HashMap;
34
use std::net::IpAddr;
45
use std::num::NonZeroU32;
@@ -48,6 +49,17 @@ pub struct GetTracingConfig {
4849
pub consistency: Consistency,
4950
}
5051

52+
impl TracingInfo {
53+
/// Returns a list of unique nodes involved in the query
54+
pub fn nodes(&self) -> Vec<IpAddr> {
55+
self.events
56+
.iter()
57+
.filter_map(|e| e.source)
58+
.unique()
59+
.collect()
60+
}
61+
}
62+
5163
impl Default for GetTracingConfig {
5264
fn default() -> GetTracingConfig {
5365
GetTracingConfig {

scylla/src/transport/session_test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,7 @@ async fn test_get_tracing_info(session: &Session, ks: String) {
919919
// Getting tracing info from session using this uuid works
920920
let tracing_info: TracingInfo = session.get_tracing_info(&tracing_id).await.unwrap();
921921
assert!(!tracing_info.events.is_empty());
922+
assert!(!tracing_info.nodes().is_empty());
922923
}
923924

924925
async fn test_tracing_query_iter(session: &Session, ks: String) {

0 commit comments

Comments
 (0)