A Prophet-based network anomaly detection package
Project description
Propano
A lightweight, open-source network anomaly detection package leveraging Facebook Prophet for time-series modeling.
Propano leverages Facebook Prophet to detect anomalies in time-series data. Our approach integrates domain knowledge, anomaly scoring, continuity analysis, and proximity analysis to reduce noise and false positives—helping detect meaningful anomalies rather than isolated outliers.
Few inputs a user can use to detect the anomalies.
✔ Domain Knowledge: Static cut-off lower and upper bounds for a metric. Currently, it is static, we intend to derive dynamic suggestion of this value as an insight to the users. Data points lying beyond this range will be considered for the anomaly detection. Ex: If a CPU usage has spike from 20% to 60% and the lower bound is set to 70%, then this spike would be ignored.
✔ Anomaly Scoring: Sigmoid based scoring(0 - 1) with scale factor can be used by the consumers to set the threshold for anomalies based on the sensitivity(Low, Medium, High sensitivity). Low Sensitivity: Anomalous points with scores above 0.9 Medium Sensitivity: Anomalous points with scores above 0.7 High Sensitivity: Anomalous points with scores above 0.5 Custom Threshold also supported. Anomalies detection in this step are considered for further process.
✔ Continuity Analysis: Consumers of the library can specify the period of continuity of the anomalous behaviour. Anomalies detection in this step are considered for further process.
✔ Proximity Analysis: This will reduce the clutter's in the final anomalous points detected. Start and end of the block of anomalies(range) is shown in the final output. If the data is crossing the trend, deviation from the anomalous range values are intelligently considered as well.
Getting Started
pip install propano
OR
pip3 install propano
Project Structure
propano/
├── src/
│ ├── propano/
│ │ ├── __init__.py
│ │ ├── anomaly_detector.py # Core anomaly detection logic
│ │ ├── cli.py # Command-line interface (CLI)
│ │ ├── utils.py # Helper functions (e.g., data preprocessing)
│ │ ├── visualization.py # Functions for plotting anomalies
│ ├── tests/
│ │ ├── test_anomaly_detector.py # Unit tests
│ │ ├── test_cli.py # Unit tests for CLI
│ │ ├── test_utils.py
│ ├── data/
│ │ ├── raw/ # Raw network traffic data
│ │ │ ├── sample_network_data.csv
│ │ ├── processed/ # Preprocessed data files
│ │ │ ├── cleaned_data.csv
│ ├── notebooks/
│ │ ├── anomaly_detection_demo.ipynb # Jupyter notebook example
├── examples/
│ ├── example_usage.py # Example script demonstrating package usage
├── docs/
│ ├── README.md # Project documentation
│ ├── CONTRIBUTING.md # Guidelines for contributors
├── .github/
│ ├── workflows/
│ │ ├── ci.yml # GitHub Actions CI/CD workflow
├── setup.py # Package setup script
├── requirements.txt # Dependencies
├── LICENSE # Open-source license
├── .gitignore # Ignore unnecessary files
Useful Commands for the Developers
To install the dependencies
pip install -r requirements.txt
To Build and Upload to PyPI
python -m build
pip uninstall propano -y && pip install .
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file propano-0.1.2.tar.gz.
File metadata
- Download URL: propano-0.1.2.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57a1470c1df3ef2b973349f9e75cf0dd6de76f4c007e68f7dc858f539317abfd
|
|
| MD5 |
12de2ccea159eb29b37fc28005d2c1a5
|
|
| BLAKE2b-256 |
ed9d0ef24077aa552b28f4fd9591a684abb68a4b6780c73661cf943193e2ae14
|
File details
Details for the file propano-0.1.2-py3-none-any.whl.
File metadata
- Download URL: propano-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dbbb7d8dc301d3f342f9050af6172283f84a8f04e7cb4ef979c06d025017de9
|
|
| MD5 |
d61f5cee09b1f7763c76a7ecf4d6ff0e
|
|
| BLAKE2b-256 |
45c242e0a910a96d0e4dbcc9a99269aecfeffd5edf4dfc8a2ee5958e5cc967ed
|