Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm

count total samples

and nicer prints

Changed files
+13 -5
ufos
+3 -2
ufos/src/consumer.rs
···
created_collection = true;
Default::default()
});
-
collection.push_front(record);
-
collection.truncate(MAX_BATCHED_RECORDS);
+
collection.total_seen += 1;
+
collection.samples.push_front(record);
+
collection.samples.truncate(MAX_BATCHED_RECORDS);
if created_collection {
self.current_batch.records.len() >= MAX_BATCHED_COLLECTIONS // full if we have collections to the max
+7 -1
ufos/src/lib.rs
···
pub record: serde_json::Value,
}
+
#[derive(Debug, Default)]
+
pub struct CollectionSamples {
+
pub total_seen: usize,
+
pub samples: VecDeque<SetRecord>,
+
}
+
#[derive(Debug)]
pub struct DeleteRecord {
pub did: Did,
···
#[derive(Debug, Default)]
pub struct EventBatch {
-
pub records: HashMap<Nsid, VecDeque<SetRecord>>,
+
pub records: HashMap<Nsid, CollectionSamples>,
pub record_deletes: Vec<DeleteRecord>,
pub account_removes: Vec<Did>,
}
+3 -2
ufos/src/store.rs
···
record_deletes,
account_removes,
} = batch;
-
let total_records: usize = records.values().map(|v| v.len()).sum();
+
let total_records: usize = records.values().map(|v| v.total_seen).sum();
+
let total_samples: usize = records.values().map(|v| v.samples.len()).sum();
println!(
-
"got batch with {total_records} records in {} collections, {} record deletes, {} account removes",
+
"got batch of {total_samples: >3} samples from {total_records: >3} records in {: >2} collections, {: >2} record deletes, {} account removes",
records.len(),
record_deletes.len(),
account_removes.len()