Article

ctrlb-decompose: Log-Müll reduzieren bevor er das LLM erreicht

LLM Logs Rust CLI WASM DevOps

Das Problem

Wer schon mal LLMs auf Server-Logs losgelassen hat, kennt die Pain: Millionen von Zeilen, davon 90% identische Rauschen-Muster, und das LLM erstickt an Token-Costs bevor es die eigentlichen Insights findet. Raw-Logs in einen Prompt zu packen ist verschwenderisch und teuer.

Die Lösung

ctrlb-decompose ist ein Open-Source-Tool (MIT, Rust) das genau diese Lücke füllt. Es komprimiert rohe Log-Zeilen in strukturelle Muster — mit typisierten Variablen, Quantil-Statistiken, Anomalie-Flags und Severity-Scoring. Aus 1,2 Millionen Zeilen werden 43 Muster. Das ist eine Reduktion von 99,9%.

Wie es funktioniert

Die Pipeline läuft in einem einzigen Streaming-Pass mit minimalem Memory-Footprint:

  1. Timestamp-Extraktion: Parst ISO 8601, Apache, syslog, Unix epoch etc. in normalisierte <TS>-Marker
  2. CLP-Encoding: Ersetzt Integers, Floats, IPs und Strings durch kompakte Platzhalter. Strukturell identische Zeilen produzieren denselben “logtype”
  3. Drain3-Clustering: Baum-basiertes Similarity-Clustering gruppiert Logtypes zu Mustern. Differierende Tokens werden zu <*>-Wildcards. Inkrementell, kein zweiter Pass nötig
  4. Variable Extraction & Typing: Klassifiziert Variablen in semantische Typen: IPv4, UUID, Duration, Enum, Integer etc.
  5. Statistics: DDSketch-Quantile (p50/p99), HyperLogLog-Kardinalität, Top-k-Values, temporales Bucketing
  6. Anomaly Detection: Frequency-Spikes, Error-Cascades, bimodale Verteilungen
  7. Scoring & Correlation: Keyword-basierte Severity, temporale Co-Occurrence, Error-Cascade-Detection

Output-Formate

Drei Formate stehen zur Verfügung: ANSI-Terminal für Menschen, kompaktes Markdown für LLMs, und JSON für Programme. Das Markdown-Format ist explizit für LLM-Prompts optimiert — komprimiert, strukturiert, direkt verwendbar.

Verfügbarkeit

CLI, Browser-WASM und als Rust-Library. Es gibt auch ein Claude-Plugin im Repo. Das Tool ist aktiv entwickelt mit Benchmarks und Tests.

Fazit

Genau der richtige Pre-Processor wenn man LLMs für Log-Analyse einsetzt. Statt das Modell mit 1M Zeilen zu füttern, gibt man ihm 43 Muster mit Statistiken — und das Modell hat tatsächlich Kontext-Window übrig für die eigentliche Analyse. Die Rust-Implementierung macht’s schnell, WASM macht’s browser-tauglich. Saubere Sache.


Quelle: GitHub: ctrlb-hq/ctrlb-decompose