How dcm-dcm-dcm/eagerlog works
EagerLog is an active-learning, retrieval-augmented log anomaly detector. Its main workflow prepares and parses a configured dataset, embeds reference log windows, retrieves similar evidence for each test window, asks Qwen to explain and classify it, and selectively adds uncertain examples to the evolving reference set. Results and metrics are written at the end. The graph preserves the three dataset-specific Drain parsers and prompt roles; unsampled utilities and config details are represented only where the excerpts or README support them.
Main entry points: main.py Detection loop · preprocessing.py Dataset preprocessing · utils.py Detection utilities · chat.py Qwen client
Components 16
Detection workflow
- Detection loop
main.py - Experiment config
config/BGL.yaml - Result files
Dataset preparation
- Dataset preprocessing
utils/preprocessing.py - BGL Drain parser
utils/DrainBGL.py - Thunderbird parser
utils/DrainThunderbird.py - Zookeeper parser
utils/DrainZookeeper.py
Retrieval and utilities
- Detection utilities
utils/utils.py - DPR encoder
LLM prompting
- Explanation template
prompts/explanation_prompt.txt - Evidence template
prompts/evidence.txt - Analysis template
prompts/analysis_prompt.txt - Qwen client
llm/chat.py
Other components
- Experiment runner
- LogHub datasets
- Qwen API
Connections 16
- Experiment runner → Detection loop: runs
README.md - Detection loop → Experiment config: loads
main.py - Detection loop → Dataset preprocessing: prepares data
main.py - Dataset preprocessing → LogHub datasets: downloads
utils/preprocessing.py - Dataset preprocessing → BGL Drain parser: parses BGL
utils/preprocessing.py - Dataset preprocessing → Thunderbird parser: parses Thunderbird
utils/preprocessing.py - Dataset preprocessing → Zookeeper parser: parses Zookeeper
utils/preprocessing.py - Detection loop → Detection utilities: retrieves and evaluates
main.py - Detection utilities → Dataset preprocessing: invokes parsing
utils/utils.py - Detection loop → DPR encoder: encodes windows
main.py - Detection loop → Explanation template: loads
main.py - Detection loop → Evidence template: loads
main.py - Detection loop → Analysis template: loads
main.py - Detection loop → Qwen client: requests generations
main.py - Qwen client → Qwen API: calls API
llm/chat.py - Detection loop → Result files: writes CSV
main.py