CRISP: Critical Path Analysis of Large-Scale Microservice Architectures (Artifact)
Creators
Description
This zip includes the original artifact used in the CRISP paper.
The appendix in the original paper contains the details on the setup and execution of the artifact. There are three components in this artifact: top-down analysis, bottom-up analysis, and anomaly detection.
Note
- Due to privacy and security concerns, most unrelated fields and tags are removed.
- All trace is sanitized consistently. The same service or endpoint will have identical mapping across three directories. (i.e., service 1 represents the same service in all traces). However, the mapping is inconsistent with https://zenodo.org/records/13947828, so please do not mix the traces between the two artifacts.
- To preserve privacy, the start time of each trace has been randomly shifted. As a result, the start and end times in the traces do not reflect the actual collection times, and users should not attempt to infer when the traces were gathered.
- Within each trace, the relative durations and timestamps of all spans remained consistent, as the shift was applied uniformly across the entire trace.
Top-down analysis
Simply run bash top-down.sh
should be sufficient. Note the result looks slightly different since this artifact contains a subset of traces from the original paper.
bottom-up analysis
bash bottom-up.sh
should generate the figure 13-20 from the original paper. Note instead of having 1m+ traces in the original paper, this artifact contains a subset of 100k traces. So generated figure may look slightly different.
Anomaly detection
This part contains the original repo of TraceAnomaly. The dataset contains the original trace of Service 3 in Table 2 from the original paper.
To run the experiment, first please refer to the appendix for the setup.
Then please run the following:
bash preprocess.sh
to generate the matrices that are used in the training- within
TraceAnomaly
repo- run
bash run-training-WG.sh
to run the training using the whole graph. Correspond to Service 3 row, column TA in Table 2. - run
bash run-training-CS.sh
to run the training using the critical path only. Correspond to Service 3 row, column CRISP in Table 2.
- run
- run
python3.6 parse-rnvp.py -i path_to_rnvp_file
to check the result
Note
- The traces among
train
,normal
, andabnormal
are split randomly from normal traces. The error generation part can be found in lines 137-144 inpreprocess.py
. It is also described in Section 7.3 Methodology in the original paper. For real error traces, please refer to https://zenodo.org/records/13947828.
If you use the traces in your research, please cite our paper
@inproceedings{zhang2022crisp, title={$\{$CRISP$\}$: Critical path analysis of $\{$Large-Scale$\}$ microservice architectures}, author={Zhang, Zhizhou and Ramanathan, Murali Krishna and Raj, Prithvi and Parwal, Abhishek and Sherwood, Timothy and Chabbi, Milind}, booktitle={2022 USENIX Annual Technical Conference (USENIX ATC 22)}, pages={655--672}, year={2022} }
If you have more questions, you can reach out to Chris(Zhizhou) Zhang.
Files
CRISP-main.zip
Files
(2.3 GB)
Name | Size | Download all |
---|---|---|
md5:efc646e625270685734e8988fc5ef8ec
|
2.3 GB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/uber-research/CRISP
- Programming language
- Python