Skip to main content

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


Download files

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

Source Distribution

propano-0.1.2.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

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

propano-0.1.2-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

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

Hashes for propano-0.1.2.tar.gz
Algorithm Hash digest
SHA256 57a1470c1df3ef2b973349f9e75cf0dd6de76f4c007e68f7dc858f539317abfd
MD5 12de2ccea159eb29b37fc28005d2c1a5
BLAKE2b-256 ed9d0ef24077aa552b28f4fd9591a684abb68a4b6780c73661cf943193e2ae14

See more details on using hashes here.

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

Hashes for propano-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2dbbb7d8dc301d3f342f9050af6172283f84a8f04e7cb4ef979c06d025017de9
MD5 d61f5cee09b1f7763c76a7ecf4d6ff0e
BLAKE2b-256 45c242e0a910a96d0e4dbcc9a99269aecfeffd5edf4dfc8a2ee5958e5cc967ed

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