# Self-Healing of Semantically Interoperable Smart and Prescriptive Edge Devices in IoT
## 3 SEDGE Proposed Methodology
### Application Layer
#### 3.6.2.  
Iot Monitoring  
The \"IoT monitoring\" application is used to monitor edge performance by exploiting certain built-in functions. Based on the most common errors (Section 3.6.1) and available functions, the operational status of the edge can be monitored non-stop 24/7, showcasing the edge performance. The procedures selected to monitor performance are as follows:  
* _cpu_temperature_. The CPU temperature refers to the temperature of the core, which is considered a crucial aspect of the edge's performance. An edge operating with an increased heat range will not only slow its performance, but will eventually cause the system to shut down. The CPU temperature is considered abnormal if it exceeds the normal levels for more than 2 min.
* _cpu_usage_percent_. It refers to the percentage of CPU that is used by running processes, both system and user processes. Normally, the CPU generates about 30% of usage. The CPU usage is considered abnormal if it exceeds the normal levels by more than 10 min.
* _virtual_memory_usage_. Virtual memory utilizes software and hardware, enabling the edge to balance physical memory shortages, temporarily transferring data from (RAM) to disk storage. High virtual memory usage will eventually slow down edge performance.
* _disk_usage_. It indicates how much the edge hard disk is utilizing to perform all processes. A high disk usage may cause serious problems (e.g., higher load times, stuttering, and low frame rate (FPS)) and even completely damage the hard-drive if it is constant.
* _network_usage_. Monitors the network bandwidth and measures data usage in megabytes between time intervals. In edge devices with limited network usage plans, the measurement can help reduce the usage to prevent reaching the monthly plan limit.
* _number_of_processes_. It refers to all the processes that utilize the resource CPU (i.e., into the \"RUNNING\" scv rate). This procedure is mainly an insight of the resource CPU utilization.  
For all the above procedures, values within the predefined levels are considered normal, while values outside this range are considered fatal errors. The selected procedures to monitor the performance are summarized in Table 4. The IoT monitoring automatically performs all the actions (Section 3.6.4) when the monitored procedures exceed normal levels.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Number** & **Resource** & **Error** & **Draft Description** & **Type** \\ \hline Ed1 & Edge & General Slowdown & Most of the applications take & RA \\  & & & longer time to execute & \\ \hline Ed2 & Edge & Keeps Disconnecting from Wi-Fi & \begin{tabular}{c} The edge is disconnecting from \\ the WiFI at least twice a day \\ \end{tabular} & PI \\ \hline Ed3 & Edge & Slow Internet & The internet response is slow & PI \\ \hline Ed4 & Edge & High Temperature & The edge is overheating & RA \\ \hline Ed5 & Edge & Abnormal CPU Usage & \begin{tabular}{c} The CPU usage is more than 90\% \\ for more than 10 min \\ \end{tabular} & RA \\ \hline Ed6 & Edge & Abnormal RAM usage & RAM usage is more than 90\% for & RA \\  & & & more than 10 min & RA \\ \hline En1 & Entities & Low battery & The battery is less than 10\% & PI \\ \hline En2 & Entities & No values & \
\begin{tabular}{c} The sensor does not push data \\ over a day \\ \end{tabular} & PI \\ \hline En3 & Entities & Stack & The sensor sends a constant value & RA \\ \hline EdEn1 & Edge/Entities & Error analysis &
\begin{tabular}{c} Detected error by the error \\ analysis process \\ \end{tabular} & RA \\ \hline \hline \end{tabular}
\end{table}
Table 3: Common problems/malfunctions and healing actions.