## 3 Architecture of the Proposed Solution  
The proposed solution is for a cloud monitoring framework to monitor the critical issue of measuring CPU steal time. This monitoring solution has some distinguishing features, including lightweight data collection monitoring, scalability, and automated performance monitoring. Furthermore, we discuss the different algorithms used to obtain the monitoring data of VMs. Also, a discussion on the proposed algorithm for extracting the information on CPU steal time is presented. Many researchers have proposed different monitoring solutions. Some monitoring solutions, like CloudProCMon [1], work very efficiently. NCP is another monitoring solution that uses cloud component metrics to generate the results. In the literature review, we review several cloud monitoring solutions; Our proposed solution highlights the shortcomings of the existing solutions. Some features of our monitoring solution which help us to monitor CPU steal time are:  
1. Scalability  
A system needs to be dynamic and scalable horizontally and vertically. It needs to be compatible with any changes and to work in any situation. Horizontally scalable means that increasing the number of nodes in the network will work well with it. In contrast, vertically scalable means that the node can handle multiple resources simultaneously. 2. Monitoring Performance Automatically  
This automatic monitoring feature of the steal time monitoring framework sets it apart from other monitoring systems. It eliminates manual intervention or human interaction, making the monitoring process more efficient and streamlined. To achieve this, the framework offers two options for monitoring: \begin{table}
\begin{tabular}{c c c c c c} \hline
**Paper Reference** & **Monitoring Architecture** & **Monitoring Platform Overheads** & **Scalability** & **Monitoring CPU Steal Time** \\ \hline  & **Centralized** & **Decentralized** & **Considered** & **Considered** & **Considered** \\ \hline DARGOS [29] & N/A & ✓ & ✓ & ✓ & N/A \\ PCMONS [30] & ✓ & N/A & N/A & ✓ & N/A \\ GmoEn [31] & ✓ & N/A & ✓ & ✓ & N/A \\ NFM [8] & N/A & ✓ & ✓ & ✓ & N/A \\ MonSLAR [32] & N/A & ✓ & ✓ & N/A & N/A \\ Ngmon [33] & N/A & ✓ & ✓ & ✓ & N/A \\ MonPaaS [34] & N/A & ✓ & ✓ & ✓ & N/A \\ CloudProCMon [1] & ✓ & ✓ & ✓ & ✓ & N/A \\ Proposed Solution & ✓ & ✓ & ✓ & ✓ & ✓ \\ \hline \end{tabular}
\end{table} 
Table 1: Comparative Table. Using the push communication model: The monitoring framework actively pushes real-time steal time data to the relevant monitoring entities or systems with this approach. It ensures that the monitoring information is promptly delivered without relying on manual requests or queries. The push model enables continuous monitoring and immediate access to steal time data, allowing for proactive detection and response to performance issues. 2. Using the pull model: Alternatively, the monitoring framework supports the pull model, where the monitoring entities can retrieve steal time data autonomously as needed. With this approach, the monitoring systems can periodically request steal time information from the framework, or they can provide it when demanded. The pull model provides flexibility and adaptability in monitoring operations by enabling self-initiated data retrieval. The architecture of our proposed solution is depicted in Figure 1; it comprises two main components: the cloud controller node and the compute node. The cloud controller node hosts the monitoring dashboard, a user interface for monitoring and visualizing collected data. On the other hand, the compute node represents the cloud server where the virtual machines (VMs) are deployed. The monitoring dashboard establishes communication with the VMs on the compute node to gather specific data, mainly information related to CPU steal time. The collected monitoring data from the VMs on the compute node are transmitted to the monitoring dashboard located on the cloud controller node. These data are then subjected to further analysis and visualization.