hardware-observer

Hardware Observer

Channel Revision Published Runs on
latest/stable 522 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 521 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 520 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 519 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 518 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 517 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 516 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 515 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 514 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 513 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 512 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 511 26 Aug 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/stable 15 17 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 630 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 629 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 628 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 627 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 626 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 625 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 624 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 623 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 622 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 621 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 620 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 619 24 Oct 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/candidate 15 02 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 693 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 692 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 691 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 690 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 689 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 688 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 687 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 686 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 685 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 684 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 683 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 682 Today
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/edge 15 03 Nov 2023
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
juju deploy hardware-observer
Show information

Platform:

Ubuntu
24.04 22.04 20.04 18.04

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.