---
title: FAMOS-dataset
canonical_url: "https://www.modelscope.cn/datasets/dcm552/FAMOS-dataset"
md_url: "https://www.modelscope.cn/datasets/dcm552/FAMOS-dataset.md"
repository: dcm552/FAMOS-dataset
chinese_name: "FAMOS公开数据集"
last_updated: 2025-08-14
license: "Apache License 2.0"
storage_size: "10 GB"
downloads: 5177
stars: 8
---

# FAMOS-dataset

> FAMOS-dataset - dcm552 在 ModelScope 开源的数据集。The Train-Ticket and Mall datasets were constructed for the fault diagnosis task. Both datasets contain three modalities of observable data: traces, logs, and metrics. We constructed these datasets through fault…

dcm552/FAMOS-dataset 是 ModelScope 魔搭社区上的数据集，存储大小 10 GB，采用 Apache License 2.0 许可。

- **Repository**: dcm552/FAMOS-dataset
- **License**: Apache License 2.0
- **Storage size**: 10 GB
- **Downloads**: 5177
- **Stars**: 8
- **Last updated**: 2025-08-14

Source: https://www.modelscope.cn/datasets/dcm552/FAMOS-dataset

---

# Train-Ticket and Mall Dataset for Fault Diagnosis Task

## Introduction
The Train-Ticket and Mall datasets were constructed for the fault diagnosis task. Both datasets contain three modalities of observable data: traces, logs, and metrics. The data structure is illustrated in the figure below:

![Multi-modal data in microservices](imgs/multimodel_data.png "Multi-modal data in microservices")

We constructed these datasets through fault injection on both a benchmark microservice system and a real industrial system. Our objective is to create two multimodal datasets with a rich variety of fault types, making them suitable for the fault diagnosis task.

## Microservice System

### Train-Ticket
The [Train-Ticket](https://github.com/FudanSELab/train-ticket) system is a benchmark microservice providing railway ticket services, allowing users to perform operations such as ticket booking, payment, and rescheduling.

### Mall
The Mall system is an e-commerce backend microservice, primarily offering user information services, shopping cart services, and product services. It is deployed in a real production environment to demonstrate the functionality of Alibaba Cloud's Application Real-Time Monitoring Service (ARMS). The open-source version can be found in the [ARMS-Demo](https://github.com/aliyun/alibabacloud-microservice-demo/tree/master/arms-demo).

## Data Collection
For the Train-Ticket microservice, we utilized [Locust](https://locust.io) for traffic injection to simulate user requests. We ensured that the traffic used for the Mall microservice matched the ARMS demonstration page.

For traces and metrics, we collected data using Alibaba Cloud's Application Real-Time Monitoring Service (ARMS). For traces, we mainly collected topology information about service calls, including the service's response time, status codes, and service names. For metrics, we gathered data at three levels: Host, JVM, and Pod, as detailed in the table below:

| **Level** | **Component**    | **Metric Name**          |
|-----------|------------------|--------------------------|
| **Host**  | Host CPU         | CPU System Usage Rate    |
|           |                  | CPU User Usage Rate      |
|           |                  | CPU I/O Wait Time        |
| **Host**  | Host Disk        | Disk Usage Space         |
|           |                  | Disk Remaining Space     |
| **Host**  | Host Memory      | Memory Buffers           |
|           |                  | Free Memory Space        |
|           |                  | Used Memory Space        |
|           |                  | Cached Memory            |
|           |                  | Total Memory             |
| **Host**  | Host Network     | Network Out Bytes        |
|           |                  | Network In Bytes         |
| **JVM**   | GC Count Instant | Old GC Count Instant     |
|           |                  | Young GC Count Instant   |
| **JVM**   | GC Time Instant  | Old GC Time Instant      |
|           |                  | Young GC Time Instant    |
| **JVM**   | Heap             | Old Generation           |
|           |                  | Meta Space               |
|           |                  | Eden Space               |
|           |                  | Survivor Space           |
| **JVM**   | Thread           | Thread Deadlock Count    |
|           |                  | Thread New Count         |
|           |                  | Thread Runnable Count    |
|           |                  | Thread Wait Count        |
|           |                  | Thread Blocked Count     |
|           |                  | Thread Timed Wait Count  |
|           |                  | Thread Count             |
|           |                  | Thread Terminated Count  |
| **Pod**   | Pod CPU          | Pod CPU Usage Rate       |
|           |                  | Pod CPU Load Rate        |
| **Pod**   | Pod File System  | Pod File Read Space      |
|           |                  | Pod File Write Space     |
| **Pod**   | Pod Memory       | Pod Memory Usage Rate    |
|           |                  | Pod Memory Limit         |
|           |                  | Pod Memory Fail Count    |
| **Pod**   | Pod Network      | Pod Network Socket Count  |
| **Pod**   | Pod Process      | Pod Process Number       |

For logs, we utilized Alibaba Cloud's Log Service (SLS) for collection. The collected logs include the TraceID and SpanID of the current user invoking the thread, facilitating our data alignment.

## Fault Injection and Labeling
We used the fault injection tool [ChaosBlade](https://chaosblade.io) to conduct fault injections on both microservice systems. We primarily targeted three levels: Host, Container, and Service. The specific fault types injected are detailed in the table below:

| Level           | Fault Type                        |
|-----------------|-----------------------------------|
| Host level      | Host CPU overload                 |
|                 | Host memory overload              |
|                 | Host disk I/O overload            |
| Container level | Container CPU overload            |
|                 | Container memory overload         |
|                 | Container disk read I/O overload  |
|                 | Container disk write I/O overload |
|                 | Container network packet loss     |
|                 | Container process suspension      |
| Service level   | Service interface delay           |
|                 | Service error                     |
|                 | Service stop/restart              |

These fault types were identified based on historical fault data and common scenarios in business operations. In total, we injected 16 types of faults into the two microservice systems, with each fault injection session lasting from 5 to 10 minutes and the entire injection process extending over 6 days. Subsequently, we obtained three modalities of data from the microservices, along with their corresponding data labels. These labels include the time periods when faults were injected and the locations of the faults.

## Usage
The `label.csv` file in each dataset directory indicates the start and end times of the fault injection. The meaning of each column is explained in the table below:

| Table Name              | Description                          |
|-------------------------|--------------------------------------|
| start_time              | Start time of the fault injection    |
| end_time                | End time of the fault injection      |
| service_name            | Name of the service where the fault was injected |
| operation_name          | Name of the interface where the fault was injected, listed as an array; if empty, there are no restrictions |
| excluded_operation_name | List of noise interfaces to be excluded |
| fault_level             | Level of the fault injection         |
| fault                   | Type of fault                        |
