Platform:

Ubuntu
26.04 24.04 22.04 20.04 18.04
Channel Revision Published Runs on
latest/stable 952 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 951 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 950 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 949 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 948 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 947 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 946 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 945 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 944 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 943 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 942 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 941 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 940 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 939 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 938 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 937 01 Oct 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 15 17 Jan 2025
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 952 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 951 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 950 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 949 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 948 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 947 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 946 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 945 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 944 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 943 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 942 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 941 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 940 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 939 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 938 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 937 29 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 15 02 Jan 2025
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 952 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 951 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 950 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 949 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 948 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 947 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 946 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 945 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 944 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 943 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 942 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 941 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 940 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 939 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 938 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 937 16 Sep 2026
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 15 03 Nov 2023
Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
juju deploy hardware-observer

Lifecycle of the hardware-observer charm

This document describes the details of each event handler in hardware-observer.

The diagram above shows the basic lifecycle of the hardware-observer charm.

Install/ upgrade-charm

  • During these events, we install all the required user-uploaded resources after checking the available collectors on the host and populating the hw_tool_enable_list.
  • If everything goes well, we store the successful resource installation state in StoredState so that it can be used later during the checks in the update-status event handler.
  • The charm also notifies the user during this event if any missing resources need to be uploaded by setting the application status to Blocked.
  • Then we proceed to install and start all the exporters (currently prometheus-hardware-exporter, smartctl-exporter and dcgm-exporter).
  • Finally, we execute the update_status event handler to ensure the right charm status is set.

Remove

  • Remove all enabled tools and hardware resources that have been uploaded by the user and installed on the host by the charm.
  • Remove all installed exporters.
  • Remove the charm itself.

Update-status

  • Set the required charm’s status to “Blocked” based on various conditions.
    • If all resources are not installed
    • if the cos-agent relation is not present
    • If the exporter config is not correctly provided
    • If any enabled hardware tools have not been installed correctly
    • If any of the exporters are not healthy (service failed for some reason)
  • Otherwise, set the charm’s status to “Active”.

Config-changed

  • We defer the event if all required resources are not uploaded and installed.
  • If the cos-agent relation is present, we validate the provided config to ensure its proper operation and render the configuration file for each exporter. If the config file setup fails for any reason, we set the charm’s status to “Blocked” with an appropriate status message.
  • Finally, we execute the update-status event handler to ensure the right charm status is set.

Help improve this document in the forum (guidelines). Last updated 11 months ago.