Small portfolio prototypes for telemetry analytics, monitoring, and detection-oriented signal processing.
| Demo | Input | Deterministic core | LLM role | Main artifacts | Guardrails / non-goals |
|---|---|---|---|---|---|
| telemetry-window-demo | JSONL / CSV events | Windows Features Alert thresholds |
None | features.csvalerts.csvsummary.json3 PNG plots |
MVP only No realtime No case management |
| ai-assisted-detection-demo | JSONL auth / web / process | Normalize Rules Grouping ATT&CK mapping |
JSON-only case drafting | rule_hits.jsoncase_bundles.jsoncase_summaries.jsoncase_report.mdaudit_traces.jsonl |
Human verification required No autonomous response No final verdict |
telemetry-window-demo is a local Python CLI that turns timestamped event streams into:
- sliding-window feature tables
- cooldown-reduced rule-based alerts
- PNG timeline plots
- machine-readable run summaries
python -m pip install -e .
python -m telemetry_window_demo.cli run --config configs/default.yamlThat command reads data/raw/sample_events.jsonl and regenerates:
data/processed/features.csvdata/processed/alerts.csvdata/processed/summary.jsondata/processed/event_count_timeline.pngdata/processed/error_rate_timeline.pngdata/processed/alerts_timeline.png
With the bundled default sample, the current repo state produces:
41normalized events24windows12alerts after a60second cooldown
Why it is worth a quick look:
- it shows a full telemetry path from raw events to operator-facing outputs
- the sample inputs and outputs are reproducible in-repo
- a second bundled scenario gives a slightly richer walkthrough without changing the basic CLI flow
Default sample:
- config:
configs/default.yaml - input:
data/raw/sample_events.jsonl - outputs:
data/processed/ - current summary:
41events,24windows,12alerts,summary.jsonincluded
Richer sample:
- config:
configs/richer_sample.yaml - input:
data/raw/richer_sample_events.jsonl - outputs:
data/processed/richer_sample/ - current summary:
28events,24windows,8alerts,summary.jsonincluded
Runtime input support:
.jsonl.csv
Required fields for both formats on every row or record:
timestampevent_typesourcetargetstatus
Cooldown behavior:
- repeated alerts are keyed by
(rule_name, scope) - scope prefers the first available entity-like field in this order:
entity,source,target,host - when no entity-like field is present, cooldown falls back to per-
rule_namebehavior
docs/sample-output.mdsummarizes the committed sample artifactsdocs/roadmap.mdsketches the next demo directionsdata/processed/summary.jsoncaptures the default run in machine-readable formdata/processed/richer_sample/summary.jsoncaptures the richer scenario packtests/keeps regression coverage close to the CLI behavior and windowing logic
- strengthen JSONL and CSV validation so ingestion failures are clearer
- keep reducing repeated alert noise while preserving simple rule-based behavior
- keep sample-output docs and public repo presentation aligned with the checked-in demo state
This repository is a portfolio prototype, not a production monitoring system.
- No real-time ingestion
- No streaming state management
- No alert routing or case management
- No dashboard or service deployment
- Sample-data driven only
