Skip to content

Commit 6e30fe8

Browse files
committed
refernce parse_datetime fork, update logging with timestamps
1 parent 417c3ba commit 6e30fe8

File tree

3 files changed

+37
-13
lines changed

3 files changed

+37
-13
lines changed

Cargo.lock

Lines changed: 21 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ clap = { version = "4.3.21", features = ["cargo", "derive"] }
4242
futures = "0.3.28"
4343
json-patch = "1.2.0"
4444
k8s-openapi = { version = "0.19.0", features = ["v1_27"] }
45-
parse_datetime = "0.5.0"
45+
# remove this fork once https://github.com/uutils/parse_datetime/pull/80 is merged and a new version released
46+
parse_datetime = { git = "https://github.com/drmorr0/parse_datetime", rev = "8546360" }
4647
paste = "1.0.14"
4748
prometheus-http-query = "0.8.2"
4849
regex = "1.10.2"

lib/store/trace_store.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ impl TraceStore {
3535
}
3636

3737
pub fn export(&self, start_ts: i64, end_ts: i64, filter: &ExportFilters) -> anyhow::Result<Vec<u8>> {
38-
info!("Exporting objs with filters: {filter:?}");
38+
info!("Exporting objs between {start_ts} and {end_ts} with filters: {filter:?}");
3939

4040
// First, we collect all the events in our trace that match our configured filters. This
4141
// will return an index of objects that we collected, and we set the keep_deleted flag =
@@ -48,7 +48,7 @@ impl TraceStore {
4848
let lifecycle_data = self.pod_owners.filter(start_ts, end_ts, &index);
4949
let data = rmp_serde::to_vec_named(&(&self.config, &events, &index, &lifecycle_data))?;
5050

51-
info!("Exported {} events.", events.len());
51+
info!("Exported {} events", events.len());
5252
Ok(data)
5353
}
5454

@@ -63,16 +63,23 @@ impl TraceStore {
6363
HashMap<String, PodLifecyclesMap>,
6464
) = rmp_serde::from_slice(&data)?;
6565

66+
let trace_start_ts = events
67+
.front()
68+
.unwrap_or(&TraceEvent { ts: UtcClock.now_ts(), ..Default::default() })
69+
.ts;
70+
let mut trace_end_ts = events
71+
.back()
72+
.unwrap_or(&TraceEvent { ts: UtcClock.now_ts(), ..Default::default() })
73+
.ts;
6674
if let Some(trace_duration_str) = maybe_duration {
67-
let trace_start_ts = events
68-
.front()
69-
.unwrap_or(&TraceEvent { ts: UtcClock.now_ts(), ..Default::default() })
70-
.ts;
71-
let trace_end_ts = duration_to_ts_from(trace_start_ts, trace_duration_str)?;
75+
trace_end_ts = duration_to_ts_from(trace_start_ts, trace_duration_str)?;
7276
events.retain(|evt| evt.ts < trace_end_ts);
77+
78+
// Add an empty event to the very end to make sure the driver doesn't shut down early
7379
events.push_back(TraceEvent { ts: trace_end_ts, ..Default::default() });
7480
}
7581

82+
info!("Imported {} events between {trace_start_ts} and {trace_end_ts}", events.len());
7683
Ok(TraceStore {
7784
config,
7885
events,

0 commit comments

Comments
 (0)