Skip to main content

Real-time data drift detection for machine learning pipelines.

Project description

etsi-watchdog

PyPI PyPI Downloads

📄 DOCS

Real-time data drift detection for machine learning pipelines.

etsi-watchdog is a production-ready Python library for drift detection, version comparison, and real-time monitoring of data streams. Designed for ML practitioners, data scientists, and AI engineers who need reliable data quality insights.


✨ Features

  • PSI-based Drift Detection (more algorithms coming)
  • Rolling Monitoring with time-frequency windowing
  • Version Drift Comparison between model/data snapshots
  • Built-in Visualization & JSON Export
  • Minimal Dependencies & Fast Performance
  • Clear API, suitable for both research and production

📦 Installation

pip install etsi-watchdog

⚡ Quickstart

🔹 Drift Detection

from etsi.watchdog import DriftCheck
import pandas as pd

ref = pd.read_csv("reference.csv")
live = pd.read_csv("current.csv")

check = DriftCheck(ref)
results = check.run(live, features=["age", "salary"])

for feat, result in results.items():
    print(result.summary())
    result.plot()

🔹 Rolling Monitoring

from etsi.watchdog import Monitor

monitor = Monitor(reference_df=ref)
monitor.enable_logging("logs/rolling_log.csv")

results = monitor.watch_rolling(
    df=live_data_stream,
    window=50,
    freq="D",
    features=["age", "salary"]
)

🔹 Drift Comparison (A/B)

from etsi.watchdog import DriftComparator

check = DriftCheck(ref)
v1 = check.run(live1, features=["age", "salary"])
v2 = check.run(live2, features=["age", "salary"])

comp = DriftComparator(v1, v2)
print(comp.diff())

🚀 etsi-watchdog v3 — Roadmap & Vision

Feature Area Description
Multi-Algorithm Support Support for additional drift metrics:
- Jensen–Shannon Divergence (JSD)
- Wasserstein Distance
- Kolmogorov–Smirnov Test (K-S)
- Tree-based drift (e.g., DeepDrift)
Plug-in Architecture Drift algorithms will be fully plug-and-play. Custom metric support via register_drift_function() API.
Real-Time Stream Hooks Support for Kafka/Redis/WebSockets to detect drift on live data streams.
Concept Drift Detection Integration with models to detect label or concept drift, not just feature distribution shift.
CLI & YAML Configs Full CLI support:
etsi-watchdog detect --ref ref.csv --live live.csv --features age salary
+ YAML-based configuration for automated pipelines.
Benchmark Suite Built-in benchmarking with synthetic datasets to evaluate metric sensitivity and response time.
Dashboard UI (Optional) Lightweight dashboard (Streamlit/FastAPI) for monitoring drift over time visually.
Drift Summary Reports Generate PDF/HTML reports with drift summary, top features, histograms, and timestamps.
Sklearn & Pandas Integration DriftCheck will support .fit()/.transform() methods like Scikit-learn transformers.

🤝 Contributing

Contributions are welcome! 🙌
If you have an idea for a drift metric, integration, or improvement, feel free to open an issue or pull request.

Please refer to CONTRIBUTING.md for guidelines.


🧾 License

Licensed under the BSD-2-Clause License.
See the LICENSE file for details.


👨‍💻 Maintainers


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

etsi_watchdog-3.0.0.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

etsi_watchdog-3.0.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file etsi_watchdog-3.0.0.tar.gz.

File metadata

  • Download URL: etsi_watchdog-3.0.0.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for etsi_watchdog-3.0.0.tar.gz
Algorithm Hash digest
SHA256 71759d5dc6f979f9314c3e79e31469bdbda221365476c0e126601afb77dcc1a6
MD5 58e64fff1183fda659c6984159d636ec
BLAKE2b-256 3d079eb86c6ed99699e952e1f53dffd87099723204492ee5198e90e63ae13c08

See more details on using hashes here.

File details

Details for the file etsi_watchdog-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: etsi_watchdog-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for etsi_watchdog-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ae014d40fbb24e56d32bd6c73f94f27af21f465fce511960cd7de42c186df78
MD5 20ca52d34877c5dec1db11fe245921b9
BLAKE2b-256 87bd1a40cc1445766202a584fb97250f20f85f43b72ad255d5b776dde088d764

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page