Jump to content

SENSBLUE ATLAS/Datasheet: Difference between revisions

No edit summary
Line 904: Line 904:
The System Health Actor '''does not receive commands'''. It is fully autonomous and publishes its metrics every '''1 second'''.
The System Health Actor '''does not receive commands'''. It is fully autonomous and publishes its metrics every '''1 second'''.


===== 24.3.2 Runtime Data =====
===== 24.3.2 Peripherals version =====
'''Topic: systemHealth/runtime/out'''
The Atlas peripherals version is on topic <code>systemHealth/versions</code><syntaxhighlight lang="json">
{
  "id": <TIMESTAMP>,
  "origin": "system-health",
  "version": "1.0.0"
}
</syntaxhighlight>
 
===== 24.3.3 Runtime Data =====
'''Topic: <code>systemHealth/runtime/out</code>'''


Publish rate: '''1 Hz''' (one message per second, clock-jump safe)
Publish rate: '''1 Hz''' (one message per second, clock-jump safe)
Line 916: Line 925:
|-
|-
|cpu_percent
|cpu_percent
|Current CPU load
|Current CPU load
|%
|%
|-
|-
|cpu_tempC
|cpu_tempC
|CPU temperature read from Linux thermal zones
|CPU temperature read from Linux thermal zones
|ºC
|ºC
|-
|-
|cpu0_freq
|cpu0_freq
|CPU Core O current frequency
|CPU Core 0 current frequency
|Hz
|Hz
|-
|-
|cpul_freq
|cpu1_freq
|CPU Core 1 current frequency
|CPU Core 1 current frequency
|Hz
|Hz
|-
|-
Line 936: Line 945:
|-
|-
|cpu3_freq
|cpu3_freq
|CPU Core 3 current frequency
|CPU Core 3 current frequency
|Hz
|Hz
|-
|-
|cpu0_throttle
|cpu0_throttle
|System throttle status register
|System throttle status register
|Hex
|Hex
|-
|-
|ram_percent
|ram_percent
|RAM usage
|RAM usage
|%
|%
|-
|-
|disk_percent
|disk_percent
|Disk usage for filesystem root /
|Disk usage for filesystem root <code>/</code>
|%
|%
|-
|-
|uptime_sec
|uptime_sec
|Time since last reboot
|Time since last reboot
|seconds
|seconds
|-
|emmc_rul
|eMMC Remaining Useful Life object calculated from EmmcActor wear history
|object
|}
|}
Example Payload (systemHealth/runtime/out) <syntaxhighlight lang="json" line="1">
Example Payload (systemHealth/runtime/out) <syntaxhighlight lang="json" line="1">
{
{
  "id": <TIMESTAMP>,
    "id": <TIMESTAMP>,
  "origin": "system-health",
    "origin": "system-health",
  "task": {
    "task": {
    "taskResult": {
        "taskResult": {
      "cpu_percent": 7.1,
            "cpu_percent": 7.1,
      "cpu_tempC": 47.3,
            "cpu_tempC": 47.3,
      "cpu0_freq": 1500000000,
            "cpu0_freq": 1500000000,
      "cpu1_freq": 1500000000,
            "cpu1_freq": 1500000000,
      "cpu2_freq": 1500000000,
            "cpu2_freq": 1500000000,
      "cpu3_freq": 1500000000,
            "cpu3_freq": 1500000000,
      "cpu0_throttle": "0x0",
            "cpu0_throttle": "0x0",
      "ram_percent": 32.9,
            "ram_percent": 32.9,
      "disk_percent": 41.2,
            "disk_percent": 41.2,
      "uptime_sec": 5321
            "uptime_sec": 5321,
 
        }
     }
     }
  }
}
}
</syntaxhighlight>


</syntaxhighlight>
===== 24.3.4 eMMC RUL - Remaining Useful Life =====
The <code>SystemHealthActor</code> also exposes the estimated eMMC Remaining Useful Life (RUL) inside the normal <code>systemHealth/runtime/out</code> payload.
 
The RUL data is calculated from the wear-level history maintained by the <code>EmmcActor</code>.
 
====== 24.3.4.1 eMMC RUL Data Flow ======
[placeholder]


===== 24.3.3 Peripherals health =====
===== 24.3.6 Peripherals health =====
  In order get the peripherals health we had to implement a SystemHealth actor in each bus manager (busi2c­O, busi2c-1, etc. ... ).
  In order get the peripherals health we had to implement a SystemHealth actor in each bus manager (busi2c­O, busi2c-1, etc. ... ).