The Health Agent is deployed in VMR as a single Kubernetes pod (ReplicationController). The health-agent pod is comprised of two containers that work together to support the VMR alarm infrastructure: the sensu-client container and the health-agent container. The health-agent service exposes the health-agent container, which facilitates the communication gateway for other VMR components to send status information to the health agent to determine the current health.
The alarm manager is responsible for determining the current health of a VMR component. Each registered component is responsible for pushing a snapshot of its current state data to the health agent for review. The known stream list is constantly updated via the rio-api.
As each snapshot of state data is received, it is added to an internal cache, allowing for the evaluation of this data over a period of time (default 60 minutes). As a component registers with the health agent, its respective component processor is added to the health agent, which provides the necessary context to evaluate the component's snapshot data for applicable alarm criteria. The processor produces set/clear alarms based solely on the current context of the snapshot data. This alarm data is then returned to the alarm manager for the purpose of reviewing the current alarm state against its cache, and if necessary, record and forward the alarm data to the accompanying sensu-client container.
In addition, if you have Prometheus enabled in VMR, you can view metrics from the VMR microservices in the Grafana UI.
Refer to the Virtual Media Recorder Deployment Guide for instructions on configuring the VMR Health Agent and enabling Prometheus to view metrics.