mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-29 00:11:01 +00:00
Collect and show storage stats
This commit is contained in:
parent
c185d6e531
commit
3101bd3ff0
@ -195,6 +195,71 @@ impl Storage {
|
||||
Ok(storage)
|
||||
}
|
||||
|
||||
pub fn get_general_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.general)?)
|
||||
}
|
||||
|
||||
pub fn get_event_seen_on_relay_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.event_seen_on_relay)?)
|
||||
}
|
||||
|
||||
pub fn get_event_viewed_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.event_viewed)?)
|
||||
}
|
||||
|
||||
pub fn get_hashtags_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.hashtags)?)
|
||||
}
|
||||
|
||||
pub fn get_relays_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.relays)?)
|
||||
}
|
||||
|
||||
pub fn get_event_tags_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.event_tags)?)
|
||||
}
|
||||
|
||||
pub fn get_event_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.events)?)
|
||||
}
|
||||
|
||||
pub fn get_event_ek_pk_index_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.event_ek_pk_index)?)
|
||||
}
|
||||
|
||||
pub fn get_event_ek_c_index_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.event_ek_c_index)?)
|
||||
}
|
||||
|
||||
pub fn get_event_references_person_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.event_references_person)?)
|
||||
}
|
||||
|
||||
pub fn get_relationships_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.relationships)?)
|
||||
}
|
||||
|
||||
pub fn get_people_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.people)?)
|
||||
}
|
||||
|
||||
pub fn get_person_relays_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.person_relays)?)
|
||||
}
|
||||
|
||||
// Remove all events (and related data) with a created_at before `from`
|
||||
pub fn prune(&self, from: Unixtime) -> Result<usize, Error> {
|
||||
// Extract the Ids to delete.
|
||||
@ -686,11 +751,6 @@ impl Storage {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_event_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.events)?)
|
||||
}
|
||||
|
||||
pub fn delete_event(&self, id: Id) -> Result<(), Error> {
|
||||
let mut txn = self.env.begin_rw_txn()?;
|
||||
let _ = txn.del(self.events, &id.as_slice(), None);
|
||||
@ -1418,11 +1478,6 @@ impl Storage {
|
||||
Ok(output)
|
||||
}
|
||||
|
||||
pub fn get_people_stats(&self) -> Result<Stat, Error> {
|
||||
let txn = self.env.begin_ro_txn()?;
|
||||
Ok(txn.stat(self.people)?)
|
||||
}
|
||||
|
||||
pub fn write_person_relay(&self, person_relay: &PersonRelay) -> Result<(), Error> {
|
||||
let mut key = person_relay.pubkey.as_bytes();
|
||||
key.extend(person_relay.url.0.as_bytes());
|
||||
|
@ -34,27 +34,7 @@ pub(super) fn update(_app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::F
|
||||
));
|
||||
|
||||
ui.add_space(6.0);
|
||||
|
||||
ui.label(format!(
|
||||
"Events in memory: {}",
|
||||
GLOBALS
|
||||
.storage
|
||||
.get_event_stats()
|
||||
.map(|s| s.entries())
|
||||
.unwrap_or(0)
|
||||
));
|
||||
|
||||
ui.add_space(6.0);
|
||||
|
||||
ui.label(format!(
|
||||
"People in memory: {}",
|
||||
GLOBALS
|
||||
.storage
|
||||
.get_people_stats()
|
||||
.map(|s| s.entries())
|
||||
.unwrap_or(0)
|
||||
));
|
||||
|
||||
ui.separator();
|
||||
ui.add_space(6.0);
|
||||
|
||||
ui.label(format!(
|
||||
@ -67,5 +47,191 @@ pub(super) fn update(_app: &mut GossipUi, _ctx: &Context, _frame: &mut eframe::F
|
||||
Ok(vec) => vec.len(),
|
||||
}
|
||||
));
|
||||
|
||||
ui.add_space(6.0);
|
||||
ui.separator();
|
||||
ui.add_space(6.0);
|
||||
|
||||
let general_stats = GLOBALS
|
||||
.storage
|
||||
.get_general_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"General storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(general_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_seen_on_relay_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_seen_on_relay_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event_Seen_On_Relay storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_seen_on_relay_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_viewed_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_viewed_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event_Viewed storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_viewed_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let hashtags_stats = GLOBALS
|
||||
.storage
|
||||
.get_hashtags_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Hashtags storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(hashtags_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let relays_stats = GLOBALS
|
||||
.storage
|
||||
.get_relays_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Relays storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(relays_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_tags_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_tags_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event_Tags storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_tags_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_ek_pk_index_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_ek_pk_index_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event_Ek_Pk_Index storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_ek_pk_index_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_ek_c_index_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_ek_c_index_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event_Ek_C_Index storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_ek_c_index_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let event_references_person_stats = GLOBALS
|
||||
.storage
|
||||
.get_event_references_person_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Event_References_Person storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(event_references_person_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let relationships_stats = GLOBALS
|
||||
.storage
|
||||
.get_relationships_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Relationships storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(relationships_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let people_stats = GLOBALS
|
||||
.storage
|
||||
.get_people_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"People storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(people_stats);
|
||||
ui.add_space(6.0);
|
||||
|
||||
let person_relays_stats = GLOBALS
|
||||
.storage
|
||||
.get_person_relays_stats()
|
||||
.map(|s| {
|
||||
format!(
|
||||
"Person_Relays storage: {} records, {} pages",
|
||||
s.entries(),
|
||||
s.leaf_pages()
|
||||
)
|
||||
})
|
||||
.unwrap_or("".to_owned());
|
||||
ui.label(person_relays_stats);
|
||||
ui.add_space(6.0);
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user