How kushal-jangra/btp works
Logs2Graphs turns grouped log events into directed, weighted attributed graphs, then applies OCDiGCN for graph-level anomaly detection and node-level explanation. The README documents five benchmark-specific graph-generation and detection entry points; the sampled generator excerpts confirm the graph construction and adjacency-preparation stages. BGL extensions add optional semantic features and temporal experiments, while root_causal provides separate post-hoc analysis for an already-scored graph. The main scripts and several extensions were not sampled, so their internal call wiring is not inferred.
Main entry points: DataLoader.py Dataset loading · DIGCNConv.py Directed convolution · GetAdjacencyMatrix.py Adjacency utilities · run_bgl_paper_exact.py BGL experiment runner
Components 25
Graph representation
- HDFS graphs
GraphGeneration_HDFS.py - Hadoop graphs
GraphGeneration_Hadoop.py - Spirit graphs
GraphGeneration_Spirit.py - BGL graphs
GraphGeneration_BGL.py - Thunderbird graphs
GraphGeneration_Thunderbird.py - Graph datasets
- Dataset loading
DataLoader.py - Adjacency utilities
GetAdjacencyMatrix.py
Detection and explanation
- Directed convolution
DIGCNConv.py - HDFS detection
main_HDFS.py - Hadoop detection
main_Hadoop.py - Spirit detection
main_Spirit.py - BGL detection
main_BGL.py - Thunderbird detection
main_Thunderbird.py
BGL extensions
- Enhanced features
enhanced_node_builder.py - BGL preparation
prepare_bgl_paper_dataset.py - Local BGL preparation
prepare_local_enhanced_bgl.py - BGL experiment runner
run_bgl_paper_exact.py - BGL temporal experiments
run_bgl_temporal_final.py
Root-cause analysis
- Root-cause analysis
root_causal/causal_graph.py - Transition scoring
root_causal/causal_inference.py - Root and chain ranking
root_causal/graph_rank.py - Causal graph rendering
root_causal/visualization.py
Other components
- Log data
- Parse and group
Connections 37
- Log data → Parse and group: parse and group
- Parse and group → HDFS graphs: grouped events
- Parse and group → Hadoop graphs: grouped events
- Parse and group → Spirit graphs: grouped events
- Parse and group → BGL graphs: grouped events
- Parse and group → Thunderbird graphs: grouped events
- HDFS graphs → Graph datasets: write graphs
- Hadoop graphs → Graph datasets: write graphs
- Spirit graphs → Graph datasets: write graphs
- BGL graphs → Graph datasets: write graphs
- Thunderbird graphs → Graph datasets: write graphs
- Graph datasets → Dataset loading: load dataset
- Dataset loading → HDFS detection: provide graph data
- Dataset loading → Hadoop detection: provide graph data
- Dataset loading → Spirit detection: provide graph data
- Dataset loading → BGL detection: provide graph data
- Dataset loading → Thunderbird detection: provide graph data
- HDFS detection → Directed convolution: apply model
- Hadoop detection → Directed convolution: apply model
- Spirit detection → Directed convolution: apply model
- BGL detection → Directed convolution: apply model
- Thunderbird detection → Directed convolution: apply model
- BGL graphs → Adjacency utilities: prepare adjacency
- HDFS graphs → Adjacency utilities: prepare adjacency
- Hadoop graphs → Adjacency utilities: prepare adjacency
- Spirit graphs → Adjacency utilities: prepare adjacency
- Thunderbird graphs → Adjacency utilities: prepare adjacency
- Enhanced features → BGL preparation: build node features
- BGL preparation → Graph datasets: write enhanced graphs
- Local BGL preparation → Graph datasets: write local graphs
- Graph datasets → BGL experiment runner: load BGL graphs
- BGL experiment runner → Directed convolution: run OCDiGCN
- BGL experiment runner → BGL temporal experiments: temporal experiments
- Root-cause analysis → Transition scoring: score transitions
- Root-cause analysis → Root and chain ranking: rank roots
- Root-cause analysis → Causal graph rendering: render result
- BGL experiment runner → Root-cause analysis: anomalous graph and importance