meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
documentation:recsdaemon [2016/09/28 15:00] – [Sensors] krudocumentation:recsdaemon [2016/10/12 13:46] – Fixed missing commas kru
Line 3: Line 3:
 ===== Introduction ===== ===== Introduction =====
  
-The RECSDaemon is a small program that can be installed on compute modules in a RECS<sup>(r)</sup>%%|%%Box system to be able to forward OS-level moinitoring data to the integrated anagement system of the RECS<sup>(r)</sup>%%|%%Box. It is written to be cross-platform, running on Microsoft Windows as well as Linux and on x86, x64 and ARM systems.+The RECSDaemon is a small program that can be installed on compute modules in a RECS<sup>(r)</sup>%%|%%Box system to be able to forward OS-level monitoring data to the integrated management system of the RECS<sup>(r)</sup>%%|%%Box. It is written to be cross-platform, running on Microsoft Windows as well as Linux and on x86, x64 and ARM systems.
 To be able to adapt to different platforms, the RECSDaemon uses plugins for different purposes. To configure these plugins and other settings an .ini file is used. To be able to adapt to different platforms, the RECSDaemon uses plugins for different purposes. To configure these plugins and other settings an .ini file is used.
 The RECSDaemon is also able to execute commands sent by the management system to the node (e.g. for shutting down the OS gracefully). The RECSDaemon is also able to execute commands sent by the management system to the node (e.g. for shutting down the OS gracefully).
Line 17: Line 17:
 The installation script will try to auto-detect some of the configuration parameters, but as platforms supported by the daemon are very diverse, manual configuration of remaining parameters most probably will be necessary. The installation script will try to auto-detect some of the configuration parameters, but as platforms supported by the daemon are very diverse, manual configuration of remaining parameters most probably will be necessary.
  
-RECSDaemon comes with both systemd and classical init scripts to allow autostart of the daemon during system boot. Depending on your distribution, use either+RECSDaemon comes with both systemd and classical init scripts to allow automatically starting the daemon during system boot. Depending on your distribution, use either
  
  systemctl enable RECSDaemon   systemctl enable RECSDaemon 
Line 32: Line 32:
       /opt/RECSDaemon/conf/recsdaemon.ini       /opt/RECSDaemon/conf/recsdaemon.ini
  
-As this is a standard INI file, it is devided into different sections (denoted by square brackets) with parameters that are set to a certain value (e.g. updateInterval=1000). You can edit this file using a text editor, e.g. nano or vi. However, you probably will need root privileges to do so.+As this is a standard INI file, it is divided into different sections (denoted by square brackets) with parameters that are set to a certain value (e.g. updateInterval=1000). You can edit this file using a text editor, e.g. nano or vi. However, you probably will need root privileges to do so.
  
 The different aspects that need to be configured will be described in the following chapters. The different aspects that need to be configured will be described in the following chapters.
Line 52: Line 52:
  
 === LinuxCommunicatorDev === === LinuxCommunicatorDev ===
-If neccessary, the I2C bus to be used can be changed. This is done by setting the ''i2cBus'' property. The value is used to determine the device path by appending it to the base path "/dev/i2c-".+If necessary, the I2C bus to be used can be changed. This is done by setting the ''i2cBus'' property. The value is used to determine the device path by appending it to the base path "/dev/i2c-".
  
 Example configuration: Example configuration:
Line 60: Line 60:
  
 === CommunicatorTCP configuration === === CommunicatorTCP configuration ===
-When utilizing I2C as the communication channel, the RECSDaemon automatically can determine on which baseboard in the RECS<sup>(r)</sup>%%|%%Box it is running. However, when using TCP/IP this information has to be supplied in the configuration. This is done by setting the ''baseboard'' parameter to the number of the baseboard this module is currently plugged into. Please remember to update this value when you move the module to another baseboard.+When utilizing I2C as the communication channel, the RECSDaemon automatically can determine on which baseboard in the RECS<sup>(r)</sup>%%|%%Box it is running. However, when using TCP/IPthis information has to be supplied in the configuration file. This is done by setting the ''baseboard'' parameter to the number of the baseboard this module is currently plugged into. Please remember to update this value when you move the module to another baseboard.
  
-Also neccessary is the IP addess of the RECS<sup>(r)</sup>%%|%%Box management system, which is set by the ''controller'' property. Set this value to the IP of the RCU the module is contained in.+Also necessary is the IP address of the RECS<sup>(r)</sup>%%|%%Box management system, which is set by the ''controller'' property. Set this value to the IP of the RCU the module is contained in.
  
 Example configuration: Example configuration:
Line 94: Line 94:
 |LinuxSensorProviderEth | Direct | Ethernet link status/speed, bytes/sec RX/TX | |LinuxSensorProviderEth | Direct | Ethernet link status/speed, bytes/sec RX/TX |
 |SensorProviderSystem | Direct | CPU utilization, RAM free, System disk free | |SensorProviderSystem | Direct | CPU utilization, RAM free, System disk free |
-|SensorProviderZynq | Direct | Serial transceiver link, utilization, bandwitdh, frame errors, soft errors |+|SensorProviderZynq | Direct | Serial transceiver link, utilization, bandwidth, frame errors, soft errors |
 |SensorProviderZynqModule | JSON | Sensors provided by the module’s microcontroller: 10 voltage rails, 5 power measurements, 7 temperatures | |SensorProviderZynqModule | JSON | Sensors provided by the module’s microcontroller: 10 voltage rails, 5 power measurements, 7 temperatures |
  
Line 112: Line 112:
 This plugin needs the name of the serial port of the management microcontroller on the Zynq module. Configure it with the ''zynqSerialPort'' property in the ''Plugins'' section. On Linux, it typically would be "/dev/ttyUSB0". This plugin needs the name of the serial port of the management microcontroller on the Zynq module. Configure it with the ''zynqSerialPort'' property in the ''Plugins'' section. On Linux, it typically would be "/dev/ttyUSB0".
 ==== Sensors ==== ==== Sensors ====
-Besides SensorProviders that autmatically add a set of sensors when enabled, the RECSDaemon also allows manual configuration of additional sensors.+Besides SensorProviders that automatically add a set of sensors when enabled, the RECSDaemon also allows manual configuration of additional sensors.
  
 Currently, the following plugins can be used to instantiate sensors manually: Currently, the following plugins can be used to instantiate sensors manually:
Line 145: Line 145:
  
 ==== Other settings ==== ==== Other settings ====
-In the ''Update'' section the rate with which the RECSDaemon updates it'virtual sensors and sends them to the management system can be configured with the ''updateInterval'' property. The value is in milliseconds and gives the time between two updates. Beware that this only changes the update rate of the daemon. The RECS<sup>(r)</sup>%%|%%Box management system has it'own update rate with which it collects sensor values. Thus, if you set this value smaller than the update rate of the management system, the effective update rate will still be that of the management system.+In the ''Update'' section the rate with which the RECSDaemon updates its virtual sensors and sends them to the management system can be configured with the ''updateInterval'' property. The value is in milliseconds and gives the time between two updates. Beware that this only changes the update rate of the daemon. The RECS<sup>(r)</sup>%%|%%Box management system has its own update rate with which it collects sensor values. Thus, if you set this value smaller than the update rate of the management system, the effective update rate will still be that of the management system.
 ===== TCP/IP server ===== ===== TCP/IP server =====
 The RECSDaemon provides a simple TCP/IP server (by default on port 2023) that can be used by external programs to gain information or provide additional sensors. The RECSDaemon provides a simple TCP/IP server (by default on port 2023) that can be used by external programs to gain information or provide additional sensors.
  
-The following commands are currenty supported:+The following commands are currently supported:
  
 ^ Command ^ Action ^ ^ Command ^ Action ^
Line 159: Line 159:
  
 ==== Getting monitoring data ==== ==== Getting monitoring data ====
-Using the ''monitor'' command, the RECSDaemon can be utilized to obtain measurements with a faster update rate than via the regular RECS<sup>(r)</sup>%%|%%Box management system. Each time the daemon receives the command, it causes the baseboard to sample it'local sensors and reads the results. Because this uses the module's I2C connection, it will not work when the CommunicatorTCP plugin is used.+Using the ''monitor'' command, the RECSDaemon can be utilized to obtain measurements with a faster update rate than via the regular RECS<sup>(r)</sup>%%|%%Box management system. Each time the daemon receives the command, it causes the baseboard to sample its local sensors and reads the results. Because this uses the module's I2C connection, it will not work when the CommunicatorTCP plugin is used.
  
 The returned JSON string has the following format: The returned JSON string has the following format:
  
 <code>[ <code>[
-{"name": "nodeCurrent", "value": 0.0, "unit": "A"+{"name": "nodeCurrent", "value": 0.0, "unit": "A"}, 
-{"name": "pegCurrent", "value": 0.0, "unit": "A"+{"name": "pegCurrent", "value": 0.0, "unit": "A"}, 
-{"name": "12vSupply", "value": 12.0, "unit": "V"}+{"name": "12vSupply", "value": 12.0, "unit": "V"},
 {"name": "temperatures", "values": [0.0, 0.0, 0.0, 0.0, 0.0], "unit": "°C"} {"name": "temperatures", "values": [0.0, 0.0, 0.0, 0.0, 0.0], "unit": "°C"}
 ]</code> ]</code>