BARO Datasets

BARO Datasets for benchmarking RCA methods

MITIntroduced 2024-05-15

To collect the metrics data, we deploy three benchmark microservice systems: Online Boutique, Sock Shop, and Train Ticket, on a Kubernetes cluster consisting of one master node and five worker nodes. Then, we deploy a monitoring system to monitor and collect resource-level and service-level metrics. To generate traffic, we use the load generators supplied by these systems and tailor them to explore all services with a load of 40-50 requests per second. Initially, we operate the applications normally to gather metrics data under normal conditions. Then, we inject faults into the running services. We execute into the designated container using kubectl exec. For CPU hog and memory leak, we use stress-ng to stress the container resource. For network delay and packet loss, we use tc (traffic control) to manipulate the traffic of the container. Specifically, we inject faults into five targeted services of Sock Shop (carts, catalogue, orders, payment, and user), five targeted services of Online Boutique (adservice, cartservice, checkoutservice, currencyservice, and productcatalogue), and five targeted services of Train Ticket (ts-auth-service, ts-order-service, ts-route-service, ts-train-service, ts-travel-service). For each combination of fault type and targeted service, we repeat the operation (i.e., fault injection and metrics data collection) five times, resulting in 100 failure cases for each benchmark microservice system.