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
doc_recs4:software_interface [2021/06/25 07:40] – [Prometheus Configuration] vordoc_recs4:software_interface [2022/02/17 14:40] vor
Line 118: Line 118:
 Example XML: Example XML:
  
-<code xml><node baseBoardPosition="0" maxPowerUsage="44" actualNodePowerUsage="32.426884399865166" +<code xml><node baseboardPosition="0" maxPowerUsage="44" actualNodePowerUsage="32.426884399865166" 
 actualPEGPowerUsage="15.12053962324833" actualPowerUsage="47.54742402311349" architecture="x86"  actualPEGPowerUsage="15.12053962324833" actualPowerUsage="47.54742402311349" architecture="x86" 
-baseBoardId="RCU_84055620466592_BB_1" health="OK" id="RCU_84055620466592_BB_1_0" inletTemperature="20.0" +baseboardId="RCU_84055620466592_BB_1" health="OK" id="RCU_84055620466592_BB_1_0" inletTemperature="20.0" 
 lastSensorUpdate="1465470151268" macAddressCompute="70:b3:d5:56:40:48" outletTemperature="20.0" state="1"  lastSensorUpdate="1465470151268" macAddressCompute="70:b3:d5:56:40:48" outletTemperature="20.0" state="1" 
 highestTemperature="20.0" voltage="12.072700851453936"/></code> highestTemperature="20.0" voltage="12.072700851453936"/></code>
Line 132: Line 132:
 |''actualPEGPowerUsage'' |Actual power consumption of a PEG card|W|Double| |''actualPEGPowerUsage'' |Actual power consumption of a PEG card|W|Double|
 |''maxPowerUsage'' |Maximum power the node can draw|W|Integer| |''maxPowerUsage'' |Maximum power the node can draw|W|Integer|
-|''baseBoardId'' |ID of the baseboard which hosts the node|-|String| +|''baseboardId'' |ID of the baseboard which hosts the node|-|String| 
-|''baseBoardPosition'' |Position of the node on the baseboard|-|Integer|+|''baseboardPosition'' |Position of the node on the baseboard|-|Integer|
 |''state'' |Power state of the node (0=Off, 1=On, 2=Soft-off, 3=Standby, 4=Hibernate)|-|Integer| |''state'' |Power state of the node (0=Off, 1=On, 2=Soft-off, 3=Standby, 4=Hibernate)|-|Integer|
 |''architecture'' |Architecture (x86, arm, UNKNOWN)|-|String| |''architecture'' |Architecture (x86, arm, UNKNOWN)|-|String|
Line 175: Line 175:
 Example XML: Example XML:
  
-<code xml><baseBoard rcuPosition="6" baseboardType="APLS" id="RCU_84055620466592_BB_6" infrastructurePower="9.8" +<code xml><baseboard rcuPosition="6" baseboardType="APLS" id="RCU_84055620466592_BB_6" infrastructurePower="9.8" 
 lastSensorUpdate="1465470151268" rcuId="RCU_84055620466592"> lastSensorUpdate="1465470151268" rcuId="RCU_84055620466592">
 <nodeId>RCU_84055620466592_BB_6_1</nodeId> <nodeId>RCU_84055620466592_BB_6_1</nodeId>
Line 185: Line 185:
 <temperatures>20.0</temperatures> <temperatures>20.0</temperatures>
 <temperatures>20.0</temperatures> <temperatures>20.0</temperatures>
-</baseBoard></code>+</baseboard></code>
  
 The attributes have the following meaning: \\ The attributes have the following meaning: \\
Line 207: Line 207:
 <code xml><rcu rcuType="ANTARES" fanSpeed="60" rackId="RCK_1" name="RECSMaster (RCU) on 192.168.56.195" rackPosition="0" id="RCU_84055620466592" lastSensorUpdate="1465470151268"> <code xml><rcu rcuType="ANTARES" fanSpeed="60" rackId="RCK_1" name="RECSMaster (RCU) on 192.168.56.195" rackPosition="0" id="RCU_84055620466592" lastSensorUpdate="1465470151268">
 <backplaneId>RCU_84055620466592_BP_1</backplaneId> <backplaneId>RCU_84055620466592_BP_1</backplaneId>
-<baseBoardId>RCU_84055620466592_BB_1</baseBoardId+<baseboardId>RCU_84055620466592_BB_1</baseboardId
-<baseBoardId>RCU_84055620466592_BB_2</baseBoardId+<baseboardId>RCU_84055620466592_BB_2</baseboardId
-<baseBoardId>RCU_84055620466592_BB_3</baseBoardId+<baseboardId>RCU_84055620466592_BB_3</baseboardId
-<baseBoardId>RCU_84055620466592_BB_4</baseBoardId+<baseboardId>RCU_84055620466592_BB_4</baseboardId
-<baseBoardId>RCU_84055620466592_BB_5</baseBoardId+<baseboardId>RCU_84055620466592_BB_5</baseboardId
-<baseBoardId>RCU_84055620466592_BB_6</baseBoardId>+<baseboardId>RCU_84055620466592_BB_6</baseboardId>
 </rcu></code> </rcu></code>
  
Line 228: Line 228:
 |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long| |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long|
 |''backplaneId'' |List of ID****s of backplanes which are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String| |''backplaneId'' |List of ID****s of backplanes which are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String|
-|''baseBoardId'' |List of ID****s of baseboards which are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String|+|''baseboardId'' |List of ID****s of baseboards which are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String|
  
 In accordance to the component rcu the API offers rcuList which returns multiple instances of rcu. In accordance to the component rcu the API offers rcuList which returns multiple instances of rcu.
Line 292: Line 292:
  
 A prometheus exporter is built-in and can be enabled. It is accessable at ''https://TOR-Master/metrics/'' or ''http://TOR-Master/metrics/'' and needs a http basic authentication.  A prometheus exporter is built-in and can be enabled. It is accessable at ''https://TOR-Master/metrics/'' or ''http://TOR-Master/metrics/'' and needs a http basic authentication. 
 +
 +The big advantage of the Prometheus exporter compared to other APIs is that it dynamically exports its own metrics and thus, additional metrics can be added or removed during runtime after changing or hotplugging hardware. This allows to export only metrics of those microservers that are plugged in. As the RECS<sup>(r)</sup>%%|%%Box has a modular approach and every RECS<sup>(r)</sup>%%|%%Box can be equipped with different carrier blades and microserver configurations, this approach is of high relevance. Using traditional monitoring tools that don’t support the export of dynamic metrics needs regular manual changes of the configuration files which is annoying. 
  
 ==== Prometheus Configuration ==== ==== Prometheus Configuration ====
  
-A typical prometheus could look like this:+Prometheus needs very little configuration to automatically parse all information and write it into a database. This makes all metrics easily accessible. 
  
 <code> <code>
Line 310: Line 312:
 ==== Grafana Dashboard ==== ==== Grafana Dashboard ====
  
-An example grafana dashboard is published on https://grafana.com/grafana/dashboards/14622 and can be integrated in Grafana using the "Import" function in grafana.+It is recommended to use Grafana as a graphical dashboard to read out these captured metrics. A pre-build Grafana dashboard is publicly available at https://grafana.com/grafana/dashboards/14622. It can be integrated in Grafana using the "Import" function. It automatically reads the available metrics from the database and dynamically adapts to the number of available microservers, see the following picture: