25 std::cout <<
"Metric collected from: " <<
event.source() << std::endl;
29 std::cout <<
"System event from: " <<
event.component() << std::endl;
33 std::cout <<
"State change in: " <<
event.component() << std::endl;
41 return kcenon::common::ok(std::vector<metric>{});
46 return kcenon::common::ok();
50 return kcenon::common::ok();
58 return {
"test_metric"};
67 return kcenon::common::ok();
81 kcenon::common::VoidResult
register_observer(std::shared_ptr<interface_monitoring_observer> observer)
override {
83 return kcenon::common::ok();
86 kcenon::common::VoidResult
unregister_observer(std::shared_ptr<interface_monitoring_observer> observer)
override {
88 return kcenon::common::ok();
97 std::cout <<
"=== Interface Compilation Test ===" << std::endl;
100 auto observer = std::make_shared<test_observer>();
101 auto collector = std::make_shared<test_collector>();
104 metric m{
"test", 42.0, {}};
106 observer->on_metric_collected(me);
108 system_event se(system_event::event_type::component_started,
"test_component",
"Started");
109 observer->on_event_occurred(se);
112 state_change_event::state::healthy,
113 state_change_event::state::degraded);
114 observer->on_system_state_changed(sce);
117 auto result = collector->collect_metrics();
118 if (result.is_ok()) {
119 std::cout <<
"Metrics collected successfully" << std::endl;
122 auto types = collector->get_metric_types();
123 std::cout <<
"Collector supports " << types.size() <<
" metric type(s)" << std::endl;
125 std::cout <<
"✅ All interface compilation tests passed!" << std::endl;
Pure virtual interface for metric collectors.
Pure virtual interface for monitoring event observers.
Event fired when a metric is collected.
Event fired when system state changes.
Generic system event for monitoring components.
kcenon::common::VoidResult update_config(const collection_config &config) override
Update collection configuration.
collection_config get_config() const override
Get current collection configuration.
kcenon::common::VoidResult start_collection(const collection_config &config) override
Start automatic metric collection.
kcenon::common::Result< std::vector< metric > > force_collect() override
Force immediate metric collection.
void reset_stats() override
Reset collector statistics.
kcenon::common::VoidResult register_observer(std::shared_ptr< interface_monitoring_observer > observer) override
Register an observer for events.
metric_stats get_stats() const override
Get collector statistics.
void notify_state_change(const state_change_event &event) override
Notify all observers of a state change.
kcenon::common::VoidResult unregister_observer(std::shared_ptr< interface_monitoring_observer > observer) override
Unregister an observer.
kcenon::common::VoidResult stop_collection() override
Stop automatic metric collection.
void notify_metric(const metric_event &event) override
Notify all observers of a metric event.
bool is_collecting() const override
Check if collector is currently active.
std::vector< std::string > get_metric_types() const override
Get the types of metrics this collector supports.
void notify_event(const system_event &event) override
Notify all observers of a system event.
kcenon::common::Result< std::vector< metric > > collect_metrics() override
Collect metrics based on current configuration.
void on_metric_collected(const metric_event &event) override
Called when a metric is collected.
void on_event_occurred(const system_event &event) override
Called when a system event occurs.
void on_system_state_changed(const state_change_event &event) override
Called when system state changes.
Event bus interface for decoupled component communication.
Abstract interface for metric collection components.
Observer pattern interface for monitoring system event handling.
Configuration for metric collection.
Statistics about metric collection.
Basic metric structure for interface compatibility.