CloudNativeSim is a toolkit for modeling and simulation of cloud-native applications. It employs a multi-layered architecture, allowing for high extensibility and customization. Below is an overview of the CloudNativeSim architecture:
Through detailed modeling of cloud-native environments and microservices architecture, CloudNativeSim provides these key features:
- Comprehensive modeling approach
- High extensibility and customization
- Simulation of dynamic request generation and dispatching
- Innovative cloudlet scheduling mechanism
- Latency calculation based on the critical path
- QoS metrics feedback
- New policy interfaces
- Grafana Dashboard Visualization
If you’re using this simulator, please ★Star this repository to show your interest!
- Clone the CloudNativeSim Git repository to local folder:
git clone https://github.com/CyanStarNight/CloudNativeSim.git
- Verify the development environment: Ensure that Java version 17 or higher is installed, the CloudSim 3.0 JAR package is available, and all Maven dependencies are fully imported.
- Run the example files (e.g.,
SockShopExample.java
) to get started
CloudNativeSim allows users to export simulation results to files and visualize them in Grafana. Follow these steps:
- Import the panel styles from the
visualization/styles
folder into Grafana. - Add fields in the main CloudNativeSim run file to enable data export to files, such as:
Reporter.writeResourceUsage("path/xxx"); Reporter.writeStatisticsToCsv(apis, "path/xxx");
- If you need to observe service dependencies in Grafana, ensure that the service registration files comply with the NodeGraph requirements.
The visualization results are shown below:
We welcome your contributions to the project! Please read the CONTRIBUTING.md before you start. The guide includes information on various ways to contribute, such as requesting features, reporting issues, fixing bugs, or adding new features. Special thanks to @beyondHJM for assisting with the design and configuration of the Grafana panels.