As mentioned previously, the monitoring daemons in the RD perform monitoring tasks every 60 seconds and store the monitored information in log files. This data is collected from the daemons using a pull model and is fetched every 5 minutes by the monitoring server.
Following we will explain some details about how the monitoring client manages the monitored information to be able to deliver it to the server when it makes a request. More specifically, we will explain how the log files and timestamps work.
The monitoring daemons on the RDs perform monitoring tasks every 60 seconds. In addition, the clients have to respond to the server every time they receive an information request (generated every 5 minutes). Consequently, the monitoring clients have to perform the following basic operations:
Collect node-centric and sliver-specific data.
Generate a unique sequence number to unequivocally identify this data.
Parse the monitored information, including the sequence number and the collected data to a JSON format and store it in a log file.
Keep track of the most recent sequence number of the monitored information.
After receiving a request of monitored information by the server, the monitoring client must:
Return the data in a JSON file. This file will only contain the collected data whose sequence number is between the most recent sequence number and the last seen sequence number of the last request received from the server.
Delete all the entries of the local log files whose sequence number is smaller than the last seen sequence number of the last request received from the monitoring server.
Figure 3 depicts how the monitoring daemon manages these sequence numbers.
Figure 3: Sequence number management
The log files were the monitoring data is stored also have several timestamp fields:
A local timestamp (Tm) or monitored timestamp containing the local time on the Research Device measured when a particular monitored information was collected.
A normalized timestamp (Tn) or relative timestamp calculated as the difference between Tm and the time t, measured when the client receives a request from the server.
As shown in Figure 4, a request received by the monitoring client at time t will produce a response containing the corresponding JSON log file where the timestamp field will have the value Tn = t-Tm
Figure 4: Timestamp management