Welcome to the code artifact for the paper: ClearCausal: Cross Layer Causal Analysis for Automatic Microservice Performance Debugging
which presents a new dependency-aware cross-layer causal analysis system that achieves fine-grained function-level root cause localization for microservice systems.
@inproceedings{tunde2024clearcausal,
title={ClearCausal: Cross Layer Causal Analysis for Automatic Microservice Performance Debugging},
author={Tunde-Onadele, Olufogorehan and Qin, Feiran and Gu, Xiaohui and Lin, Yuhang},
booktitle={2024 IEEE International Conference on Autonomic Computing and Self-Organizing Systems (ACSOS)},
year={2024},
organization={IEEE}
}
Run the paper demo
Install Docker for your platform.
docker build -t clearcausal .
docker run -it clearcausal
poetry shell
Ensure you have enough space (~2GB).
chmod +x download_all_and_extract.sh
bash download_all_and_extract.sh
Download and unzip the dataset from Zenodo.
Example for B1.zip:
unzip B1.zip
After the unzip, the bug file folder contents (e.g data_B1_21/) should be in the ClearCausal root directory.
The provided script runs experiments automatically: ./run_3_experiments_multi_outer.sh
.
Edit the script to select the bugs whose data you have downloaded.
vim run_3_experiments_multi_outer.sh
On line 4, provide a space-separated list of bug IDs, e.g.:
bug_ids=("1" "2")
Select the analysis mode (True
for function analysis, False
for service analysis). On line 9, set the function_mode
variable:
function_mode="False"
./run_3_experiments_multi_outer.sh
The script generates result folders for each bug, prefixed with res_avg_std
. By default, the combined_correlation_results_wdependency
file contains the ClearCausal results.
We provide more details in the wiki, including steps to customize the artifact for running alternative approaches or new data.