7#include <kcenon/common/interfaces/monitoring_interface.h>
35 kcenon::common::VoidResult
record_metric(
const std::string& name,
double value)
override {
36 std::lock_guard<std::mutex> lock(
mutex_);
38 return kcenon::common::ok();
42 const std::string& name,
44 const std::unordered_map<std::string, std::string>& tags)
override {
45 std::lock_guard<std::mutex> lock(
mutex_);
46 kcenon::common::interfaces::metric_value mv(name, value);
49 return kcenon::common::ok();
52 kcenon::common::Result<kcenon::common::interfaces::metrics_snapshot>
get_metrics()
override {
53 std::lock_guard<std::mutex> lock(
mutex_);
57 kcenon::common::Result<kcenon::common::interfaces::health_check_result>
check_health()
override {
58 kcenon::common::interfaces::health_check_result result;
60 ? kcenon::common::interfaces::health_status::healthy
61 : kcenon::common::interfaces::health_status::unknown;
62 result.message =
active_.load() ?
"Monitoring active" :
"Monitoring inactive";
63 return kcenon::common::ok(result);
66 kcenon::common::VoidResult
reset()
override {
67 std::lock_guard<std::mutex> lock(
mutex_);
71 return kcenon::common::ok();
80 std::cout <<
"[MockMonitoring] Started" << std::endl;
90 std::cout <<
"[MockMonitoring] Stopped" << std::endl;
105 std::this_thread::sleep_for(std::chrono::milliseconds(500));
108 std::lock_guard<std::mutex> lock(
mutex_);
123 std::deque<kcenon::common::interfaces::metrics_snapshot>
history_;
Mock monitoring implementation for demonstration.
kcenon::common::Result< kcenon::common::interfaces::health_check_result > check_health() override
const size_t max_history_
std::atomic< std::uint64_t > total_collections_
kcenon::common::Result< kcenon::common::interfaces::metrics_snapshot > get_metrics() override
std::atomic< bool > active_
std::deque< kcenon::common::interfaces::metrics_snapshot > history_
kcenon::common::VoidResult reset() override
kcenon::common::VoidResult record_metric(const std::string &name, double value, const std::unordered_map< std::string, std::string > &tags) override
kcenon::common::VoidResult record_metric(const std::string &name, double value) override
monitoring_stats get_stats() const
kcenon::common::interfaces::metrics_snapshot current_snapshot_
std::thread collection_thread_
std::uint64_t total_collections