Spaces:
Build error
Build error
File size: 1,961 Bytes
84d2a97 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
use std::sync::Arc;
use common::types::TelemetryDetail;
use parking_lot::Mutex;
use crate::common::operation_time_statistics::OperationDurationsAggregator;
use crate::telemetry::VectorIndexSearchesTelemetry;
#[derive(Debug)]
pub struct SparseSearchesTelemetry {
pub filtered_sparse: Arc<Mutex<OperationDurationsAggregator>>,
pub unfiltered_sparse: Arc<Mutex<OperationDurationsAggregator>>,
pub filtered_plain: Arc<Mutex<OperationDurationsAggregator>>,
pub unfiltered_plain: Arc<Mutex<OperationDurationsAggregator>>,
pub small_cardinality: Arc<Mutex<OperationDurationsAggregator>>,
}
impl SparseSearchesTelemetry {
pub fn new() -> Self {
SparseSearchesTelemetry {
filtered_sparse: OperationDurationsAggregator::new(),
unfiltered_sparse: OperationDurationsAggregator::new(),
filtered_plain: OperationDurationsAggregator::new(),
unfiltered_plain: OperationDurationsAggregator::new(),
small_cardinality: OperationDurationsAggregator::new(),
}
}
pub fn get_telemetry_data(&self, detail: TelemetryDetail) -> VectorIndexSearchesTelemetry {
VectorIndexSearchesTelemetry {
index_name: None,
unfiltered_plain: self.unfiltered_plain.lock().get_statistics(detail),
filtered_plain: self.filtered_plain.lock().get_statistics(detail),
unfiltered_hnsw: Default::default(),
filtered_small_cardinality: self.small_cardinality.lock().get_statistics(detail),
filtered_large_cardinality: Default::default(),
filtered_exact: Default::default(),
filtered_sparse: self.filtered_sparse.lock().get_statistics(detail),
unfiltered_sparse: self.unfiltered_sparse.lock().get_statistics(detail),
unfiltered_exact: Default::default(),
}
}
}
impl Default for SparseSearchesTelemetry {
fn default() -> Self {
Self::new()
}
}
|