mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-07-27 08:41:00 +00:00
fix stats
This commit is contained in:
@ -1,12 +1,10 @@
|
||||
use std::collections::HashMap;
|
||||
use std::ops::Deref;
|
||||
use std::sync::Arc;
|
||||
|
||||
use chrono::{DateTime, Utc};
|
||||
use sha2::Digest;
|
||||
|
||||
use crate::index::Settings;
|
||||
use crate::index_controller::{IndexController, IndexStats};
|
||||
use crate::index_controller::{IndexController, IndexStats, Stats};
|
||||
use crate::index_controller::{IndexMetadata, IndexSettings};
|
||||
use crate::option::Opt;
|
||||
|
||||
@ -39,13 +37,6 @@ pub struct ApiKeys {
|
||||
pub master: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Stats {
|
||||
pub database_size: u64,
|
||||
pub last_update: Option<DateTime<Utc>>,
|
||||
pub indexes: HashMap<String, IndexStats>,
|
||||
}
|
||||
|
||||
impl ApiKeys {
|
||||
pub fn generate_missing_api_keys(&mut self) {
|
||||
if let Some(master_key) = &self.master {
|
||||
@ -114,33 +105,14 @@ impl Data {
|
||||
}
|
||||
|
||||
pub async fn get_index_stats(&self, uid: String) -> anyhow::Result<IndexStats> {
|
||||
Ok(self.index_controller.get_stats(uid).await?)
|
||||
Ok(self.index_controller.get_index_stats(uid).await?)
|
||||
}
|
||||
|
||||
pub async fn get_stats(&self) -> anyhow::Result<Stats> {
|
||||
let mut stats = Stats::default();
|
||||
stats.database_size += self.index_controller.get_uuids_size().await?;
|
||||
|
||||
for index in self.index_controller.list_indexes().await? {
|
||||
let index_stats = self.index_controller.get_stats(index.uid.clone()).await?;
|
||||
|
||||
stats.database_size += index_stats.size;
|
||||
stats.database_size += self
|
||||
.index_controller
|
||||
.get_updates_size()
|
||||
.await?;
|
||||
|
||||
stats.last_update = Some(match stats.last_update {
|
||||
Some(last_update) => last_update.max(index.meta.updated_at),
|
||||
None => index.meta.updated_at,
|
||||
});
|
||||
|
||||
stats.indexes.insert(index.uid, index_stats);
|
||||
}
|
||||
|
||||
Ok(stats)
|
||||
pub async fn get_all_stats(&self) -> anyhow::Result<Stats> {
|
||||
Ok(self.index_controller.get_all_stats().await?)
|
||||
}
|
||||
|
||||
|
||||
#[inline]
|
||||
pub fn http_payload_size_limit(&self) -> usize {
|
||||
self.options.http_payload_size_limit.get_bytes() as usize
|
||||
|
Reference in New Issue
Block a user