Skip to main content

chronix_analytics/
lib.rs

1//! # Chronix Analytics — Real-Time Streaming Analytics
2//!
3//! Streaming anomaly detection, continuous forecasting, materialized
4//! forecast views, alerting, feedback, and forecast accuracy tracking.
5//!
6//! ## Architecture
7//!
8//! ```text
9//! CDC PointWritten events
10//!       │
11//!       ├──→ StreamingAnomalyEngine (per-series anomaly detection)
12//!       │          └──→ AlertEngine (configurable alert actions)
13//!       │
14//!       ├──→ ContinuousForecastEngine (incremental model updates)
15//!       │          └──→ ForecastCache (materialized forecast views)
16//!       │
17//!       └──→ AnomalyPrecisionTracker (user feedback)
18//!            ForecastAccuracyTracker (retroactive accuracy metrics)
19//! ```
20//!
21//! ## Example
22//!
23//! ```no_run
24//! use chronix_analytics::{
25//!     StreamingAnomalyEngine, StreamingAnomalyConfig,
26//!     ContinuousForecastEngine, ContinuousForecastConfig,
27//! };
28//! use chronix_analytics::anomaly::DetectorType;
29//! use chronix_analytics::forecast::ModelType;
30//!
31//! // Set up streaming anomaly detection
32//! let anomaly_engine = StreamingAnomalyEngine::new();
33//! let config = StreamingAnomalyConfig::new("cpu", DetectorType::ZScore, 3.0);
34//! anomaly_engine.enable(config).unwrap();
35//!
36//! // Set up continuous forecasting
37//! let forecast_engine = ContinuousForecastEngine::new();
38//! let config = ContinuousForecastConfig::new("cpu", ModelType::Ses);
39//! forecast_engine.enable(config).unwrap();
40//! ```
41
42#![warn(missing_docs)]
43#![deny(unsafe_code)]
44// Index-coupled numeric loops (matrix pivots, ACF lags, ring buffers) read
45// clearer with explicit indices than iterator chains.
46#![allow(clippy::needless_range_loop, clippy::explicit_counter_loop)]
47
48mod accuracy;
49mod alerting;
50pub mod anomaly;
51pub mod compute;
52mod continuous_forecast;
53pub mod forecast;
54pub mod lifecycle;
55pub mod multivariate;
56pub mod preprocess;
57
58pub mod error;
59mod feedback;
60mod materialized;
61#[cfg(test)]
62mod perf;
63pub mod registry;
64mod streaming_anomaly;
65mod util;
66
67pub use accuracy::{
68    AccuracyMetrics, ForecastAccuracyTracker, compute_accuracy, compute_accuracy_with_mase, mase,
69};
70pub use alerting::{AlertAction, AlertConfig, AlertEngine, FiredAlert};
71pub use continuous_forecast::{ContinuousForecastConfig, ContinuousForecastEngine, ForecastUpdate};
72pub use error::AnalyticsError;
73pub use feedback::{AnomalyFeedback, AnomalyPrecisionTracker, FeedbackLabel, PrecisionStats};
74pub use materialized::{ForecastCache, MaterializedForecast};
75pub use registry::{
76    DetectorFactory, ModelFactory, PluginError, PluginInfo, PluginRegistry, global_registry,
77};
78pub use streaming_anomaly::{ScoredAnomaly, StreamingAnomalyConfig, StreamingAnomalyEngine};