1.7 KiB
1.7 KiB
Analytics Store Design (Layer 5)
Date: 2026-03-23
Status: MVP implemented (canonical_layer/features.py, feature_metrics, anomaly_signals)
1. Purpose
Analytics store keeps derived metrics and anomaly signals on top of canonical accounting store. It avoids running heavy reasoning directly against live 1C bridge.
2. Physical tables
feature_runs
Tracks each feature-engine execution.
Core fields:
idstatusstarted_at,finished_atbaseline_window_hoursentities_totalmetrics_writtenanomalies_writtendetails_jsonerror_message
feature_metrics
Stores derived metric rows.
Core fields:
feature_run_idmetric_keyscopescope_idmetric_typemetric_valueattributes_jsoncomputed_at
anomaly_signals
Stores anomaly events and active anomaly snapshot.
Core fields:
feature_run_idsignal_typeseverityscopescope_idscoredetails_jsondetected_atis_active
3. Current metric families (MVP)
- Global volume metrics:
canonical_entities_totalcanonical_links_totalcanonical_entity_sets_total
- Structural metrics:
avg_links_per_entityhigh_link_threshold
- Per-source entity metrics:
entity_countempty_display_shareavg_links_per_entity
- Tokenized accounting hints:
account_token_frequency
- Operational freshness:
refresh_age_hours
- Optional drift:
entity_count_drift_ratio(if previous successful feature run exists)
4. Access surface
API endpoints:
POST /features/runGET /features/statsGET /features/runsGET /features/metricsGET /features/anomalies
CLI:
python scripts/run_features.py