pub mod alerts; pub mod data_value; pub mod filter_datetime; pub mod filter_parser; pub mod handle; pub mod index_key; pub mod ingest; pub mod logfmt; pub mod message; pub mod metric_primitive; pub mod promql; pub mod rate; pub mod snapshot; pub mod timestamp; #[cfg(test)] mod tests; pub use handle::{spawn, EngineHandle}; #[cfg(test)] pub(crate) use handle::test_handle; pub use message::{EngineMessage, EngineQuery, EngineResponse}; pub(crate) use snapshot::{eval_json_comparison, EngineSnapshot}; use crate::engine::data_value::ParamDeclaration; use crate::engine::timestamp::Timestamp; use serde::Deserialize; use std::collections::BTreeMap; pub struct IngestedLine { pub sequence: u64, pub timestamp: Timestamp, pub text: String, } pub struct MetricSample { pub metric_name: String, pub labels: BTreeMap, pub value: f64, pub timestamp: Timestamp, } pub type DeclareParamRequest = ParamDeclaration; #[derive(Debug, Clone, serde::Serialize)] pub struct ClearParamsResult { pub removed: usize, pub reextracted: usize, pub logs_considered: usize, } #[derive(Debug, Clone, Deserialize)] pub struct DeclareMetricRequest { pub name: String, pub message_match_regex: String, #[serde(default)] pub label_params: Vec, #[serde(default)] pub value_param: Option, #[serde(default)] pub matched_labels: Option>, #[serde(default)] pub unmatched_labels: Option>, }