Published May 12, 2022 | Version v1
Dataset Open

CRISP: Critical Path Analysis of Large-Scale Microservice Architectures (Artifact)

  • 1. ROR icon University of California, Santa Barbara
  • 2. Uber Technologies Inc.

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 python3.6 parse-rnvp.py -i path_to_rnvp_file to check the result

Note

  • The traces among train, normal, and abnormal are split randomly from normal traces. The error generation part can be found in lines 137-144 in preprocess.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