use std::time::Duration; // mpsc channel capacity between ingest/API callers and the engine actor task. pub const ENGINE_CHANNEL_CAPACITY: usize = 1024; // Hard ceiling on how many params `auto_declare_params` will ever create automatically over the // life of the engine, so one unusual input can't inflate the declared-param set forever. pub const MAX_AUTO_DECLARED_PARAMS: usize = 64; // Per-line ceiling on how many *new* params a single ingested line may contribute to the // auto-derived set, so one unusually wide line can't burn the whole per-run budget at once. pub const MAX_NEW_AUTO_PARAMS_PER_LINE: usize = 8; // How long a sort helper index may sit unused before it's purged and left to rebuild on demand. pub const SORT_HELPER_INDEX_PURGE_AFTER: Duration = Duration::from_secs(300); // Window and capacity for the rolling ingestion-to-engine-processing lag high watermark. pub const INGEST_LAG_WATERMARK_WINDOW_MS: i64 = 5000; pub const INGEST_LAG_WATERMARK_MAX_ENTRIES: usize = 5; // Bucket width used to merge multiple sub-series into one combined time series. pub const MERGE_WINDOW_MS: i64 = 1_000; // Default timeline query bucket width when the caller doesn't specify one. pub const DEFAULT_TIMELINE_BUCKET_MS: i64 = 1_000; // Reserved param names usable without declaring anything (ottyl-synthesized columns). pub const OTTYL_RESERVED_PARAM_NAMES: [&str; 3] = ["ottyl_seq", "ottyl_ts", "ottyl_fmt"]; // Idle poll cadence while tailing stdin/a file for new log lines. pub const STDIN_POLL_INTERVAL: Duration = Duration::from_millis(200); // Poll cadence for a configured Prometheus/OpenMetrics `--metrics-url`. pub const METRICS_POLL_INTERVAL: Duration = Duration::from_secs(15); // Column-splitting regex fragments for the fixed-width logfmt column parser. pub const COLUMN_SEPARATOR_PATTERN: &str = r"(?:\t|[ \t]{2,})"; pub const COLUMN_VALUE_PATTERN: &str = r"\S+(?: \S+)*"; // Name of the always-present profile every Settings file is seeded with. pub const DEFAULT_PROFILE_NAME: &str = "Default"; // Name/label of the metric the Default profile is seeded with. pub const SEEDED_METRIC_NAME: &str = "log_category"; pub const SEEDED_METRIC_LABEL: &str = "category"; // Host the HTTP server binds to; port is user-configurable, host is not. pub const DEFAULT_BIND_HOST: &str = "0.0.0.0"; // App identity used to resolve the OS-conventional settings directory, and the settings file name. pub const APP_QUALIFIER: &str = ""; pub const APP_ORGANIZATION: &str = ""; pub const APP_NAME: &str = "ottyl"; pub const SETTINGS_FILE_NAME: &str = "settings.json";