Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
monitor_adapter.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2021-2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
11#pragma once
12
14#include <memory>
15#include <chrono>
16
17// For thread_system v3.0+ integration, use common_adapters.h which provides
18// adapters for kcenon::common::interfaces::IMonitor and IMonitorable
19
21
29public:
34 explicit performance_monitor_adapter(std::shared_ptr<kcenon::monitoring::performance_monitor> monitor)
35 : monitor_(std::move(monitor)) {
36 }
37
42 // Create default monitor configuration
43 kcenon::monitoring::performance_monitor::config config;
44 config.enable_cpu_monitoring = true;
45 config.enable_memory_monitoring = true;
46 config.sampling_interval_ms = 1000;
47 monitor_ = std::make_shared<kcenon::monitoring::performance_monitor>(config);
48 }
49
54 bool initialize() {
55 if (monitor_) {
56 monitor_->start();
57 is_running_ = true;
58 return true;
59 }
60 return false;
61 }
62
66 void shutdown() {
67 if (monitor_) {
68 monitor_->stop();
69 }
70 is_running_ = false;
71 }
72
77 bool is_running() const {
78 return is_running_ && monitor_ != nullptr;
79 }
80
85 std::string name() const {
86 return "MonitorAdapter";
87 }
88
93 std::shared_ptr<kcenon::monitoring::performance_monitor> get_monitor() const {
94 return monitor_;
95 }
96
101 void set_config(const kcenon::monitoring::performance_monitor::config& config) {
102 if (monitor_) {
103 // Stop, reconfigure, and restart if running
104 bool was_running = is_running_;
105 if (was_running) {
106 monitor_->stop();
107 }
108
109 monitor_ = std::make_shared<kcenon::monitoring::performance_monitor>(config);
110
111 if (was_running) {
112 monitor_->start();
113 }
114 }
115 }
116
121 void set_metrics_enabled(bool enabled) {
122 metrics_enabled_ = enabled;
123 if (monitor_) {
124 if (enabled) {
125 monitor_->start();
126 } else {
127 monitor_->stop();
128 }
129 }
130 }
131
132private:
133 std::shared_ptr<kcenon::monitoring::performance_monitor> monitor_;
135 bool is_running_{false};
136};
137
138// Legacy alias for backward compatibility
140
141} // namespace kcenon::monitoring::adapters
Standalone adapter for performance_monitor.
performance_monitor_adapter()
Default constructor - creates a default monitor.
bool is_running() const
Check if the adapter is running.
performance_monitor_adapter(std::shared_ptr< kcenon::monitoring::performance_monitor > monitor)
Constructor with performance monitor instance.
std::string name() const
Get the adapter name.
void set_metrics_enabled(bool enabled)
Enable or disable metrics collection.
std::shared_ptr< kcenon::monitoring::performance_monitor > monitor_
void set_config(const kcenon::monitoring::performance_monitor::config &config)
Set monitoring configuration.
std::shared_ptr< kcenon::monitoring::performance_monitor > get_monitor() const
Get the underlying performance monitor.
Performance monitoring and profiling implementation.