23namespace kcenon {
namespace monitoring {
28class state_change_event;
103 timestamp_(std::chrono::steady_clock::now()) {}
152 timestamp_(std::chrono::steady_clock::now()) {}
270 virtual common::VoidResult
register_observer(std::shared_ptr<interface_monitoring_observer> observer) = 0;
277 virtual common::VoidResult
unregister_observer(std::shared_ptr<interface_monitoring_observer> observer) = 0;
Pure virtual interface for monitoring event observers.
virtual void on_event_occurred(const system_event &event)=0
Called when a system event occurs.
virtual void on_metric_collected(const metric_event &event)=0
Called when a metric is collected.
virtual ~interface_monitoring_observer()=default
virtual void on_system_state_changed(const state_change_event &event)=0
Called when system state changes.
Interface for components that can be observed.
virtual ~interface_observable()=default
virtual common::VoidResult unregister_observer(std::shared_ptr< interface_monitoring_observer > observer)=0
Unregister an observer.
virtual void notify_metric(const metric_event &event)=0
Notify all observers of a metric event.
virtual void notify_state_change(const state_change_event &event)=0
Notify all observers of a state change.
virtual common::VoidResult register_observer(std::shared_ptr< interface_monitoring_observer > observer)=0
Register an observer for events.
virtual void notify_event(const system_event &event)=0
Notify all observers of a system event.
Event fired when a metric is collected.
const std::string & source() const
metric_event(const std::string &source, const metric &data)
std::chrono::steady_clock::time_point timestamp_
std::chrono::steady_clock::time_point timestamp() const
const metric & data() const
Event fired when system state changes.
const std::string & component() const
std::chrono::steady_clock::time_point timestamp_
std::chrono::steady_clock::time_point timestamp() const
state_change_event(const std::string &component, state old_state, state new_state)
Generic system event for monitoring components.
const std::string & message() const
std::chrono::steady_clock::time_point timestamp_
std::chrono::steady_clock::time_point timestamp() const
const std::string & component() const
system_event(event_type type, const std::string &component, const std::string &message)
Adapter for metric types to support interface definitions.
Result pattern type definitions for monitoring system.
Basic metric structure for interface compatibility.