Skip to main content

Deterministic, rule-based incident analysis and RCA system

Project description

ATLAS — Deterministic Incident Analysis & Root Cause System

ATLAS is a production‑grade, deterministic incident analysis system designed for SREs and DevOps engineers. It analyzes real production logs, classifies incidents, determines root cause, and suggests concrete actions — without AI, ML, or probabilistic logic.

Built for 3‑AM incidents. Explainable, testable, and deployable today.


Why ATLAS?

Most incident tools rely on black‑box AI or heuristics that cannot be trusted under pressure. ATLAS takes the opposite approach:

  • 🔒 Zero‑AI (no LLMs, no ML, no embeddings)
  • 🧠 Fully deterministic (same input → same output)
  • 🧾 Explainable decisions (rule‑based logic)
  • 🧪 100% testable core pipeline
  • ⚙️ Real‑world workflow (file‑based CLI + JSON output)

What ATLAS Does

  1. Parses raw production logs
  2. Normalizes them into a canonical incident schema
  3. Classifies the incident (DB, Network, Auth, etc.)
  4. Infers probable root cause via rule chains
  5. Suggests concrete remediation actions
  6. Persists incident history for audit & comparison

High‑Level Architecture

flowchart TD
    A[Log File] --> B[Log Parsing Engine]
    B --> C[Incident Normalization]
    C --> D[Rule‑Based Classification]
    D --> E[Root Cause Analysis]
    E --> F[Recommendation Engine]
    F --> G[Final JSON Report]
    G --> H[Incident History (JSONL)]

Directory Structure

atlas/
├── atlas/
│   ├── cli/              # CLI entry point (file‑based)
│   ├── parsing/          # Log parsing engine
│   ├── normalization/    # Incident normalization
│   ├── classification/   # Rule‑based classifier
│   ├── rca/              # Root cause analysis engine
│   ├── recommendations/ # Action / remediation engine
│   ├── history/          # Incident persistence (JSONL)
│   ├── orchestrator/     # Pipeline orchestration
│   ├── io/               # JSON I/O helpers
│   ├── schemas/          # Shared data contracts
│   └── __main__.py       # `python -m atlas`
│
├── tests/                # pytest test suite
├── output/               # Generated reports
├── incident_history.jsonl   # Append‑only incident history
├── README.md
└── pyproject.toml

Installation

python3 -m venv env
source env/bin/activate

(Only pytest is required for testing.)


Usage (Real‑World Workflow)

1️⃣ Create a production‑like log file

2024-10-12T09:14:01Z INFO  payments-api Starting service
2024-10-12T09:14:05Z INFO  payments-api Connected to postgres
2024-10-12T09:15:22Z WARN  payments-api Slow query detected
2024-10-12T09:16:10Z ERROR payments-api Database connection timeout
2024-10-12T09:16:15Z ERROR payments-api Retries exhausted

2️⃣ Run ATLAS

python -m atlas prod_payments.log payments-api prod

3️⃣ Example Output (JSON)

{
  "service": "payments-api",
  "environment": "prod",
  "severity": "HIGH",
  "category": "DATABASE",
  "root_cause": "Connection pool exhausted",
  "actions": [
    "Increase database connection pool size",
    "Restart affected service",
    "Monitor latency for 15 minutes"
  ],
  "confidence": 1.0
}

Incident History (Persistence)

Each run is appended to incident_history.jsonl:

{"service":"payments-api","environment":"prod","severity":"HIGH","category":"DATABASE","root_cause":"Connection pool exhausted",...}
  • Append‑only
  • Audit‑friendly
  • Replayable for future analysis

Testing

Run the full test suite:

pytest -v

All core modules are covered with deterministic tests.


Design Principles

  • Determinism over intelligence
  • Rules over models
  • Schemas over guesses
  • Clarity over cleverness
  • Production realism over demos

License

MIT

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

atlas_incident-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

atlas_incident-0.1.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file atlas_incident-0.1.0.tar.gz.

File metadata

  • Download URL: atlas_incident-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for atlas_incident-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4250a3119b32d4debf3b49cb8c2c59981693a720a6c9f380ac43054358215882
MD5 eb786dc3adbd720391136b7fc6ddb8ca
BLAKE2b-256 095d8ea1c65ebe4bced4d6e75425f2ca1dbf5c509614735ac15dba76bf189a01

See more details on using hashes here.

File details

Details for the file atlas_incident-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: atlas_incident-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for atlas_incident-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95b9350eaf0472751850db0183a2676889be22b559f80210db6110aa163b7a9c
MD5 66b818d44d64d8ada88baf2c80c74b57
BLAKE2b-256 3a1e812bb9243c48f3dbc5db49866c6c8b9193e9dc9d44808ae2bc5a911e66e4

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