11 std::shared_ptr<logger_interface> logger,
12 std::shared_ptr<monitoring_interface> monitor,
14 : logger_(std::move(logger))
15 , monitor_(std::move(monitor))
16 , backend_type_(backend_type) {
18 throw std::invalid_argument(
"ObservabilityBridge requires non-null logger");
21 throw std::invalid_argument(
"ObservabilityBridge requires non-null monitor");
35 "ObservabilityBridge already initialized",
36 "ObservabilityBridge::initialize");
43 "ObservabilityBridge::initialize");
50 "ObservabilityBridge::initialize");
54 auto enabled_it =
config.properties.find(
"enabled");
55 if (enabled_it !=
config.properties.end() && enabled_it->second ==
"false") {
58 "Bridge is disabled in configuration",
59 "ObservabilityBridge::initialize");
63 auto monitoring_enabled_it =
config.properties.find(
"enable_monitoring");
65 monitoring_enabled_it->second !=
"false");
146#if KCENON_WITH_COMMON_SYSTEM
147std::shared_ptr<ObservabilityBridge> ObservabilityBridge::from_common_system(
148 std::shared_ptr<::kcenon::common::interfaces::ILogger> logger,
149 std::shared_ptr<::kcenon::common::interfaces::IMonitor> monitor) {
151 throw std::invalid_argument(
"ObservabilityBridge::from_common_system requires non-null logger");
154 throw std::invalid_argument(
"ObservabilityBridge::from_common_system requires non-null monitor");
158 auto adapted_logger = std::make_shared<common_system_logger_adapter>();
162 auto adapted_monitor = std::make_shared<basic_monitoring>();
164 return std::make_shared<ObservabilityBridge>(
BridgeMetrics get_metrics() const override
Get current metrics.
BackendType backend_type_
bool is_initialized() const override
Check if the bridge is initialized.
~ObservabilityBridge() override
Destructor.
std::mutex metrics_mutex_
std::atomic< bool > initialized_
std::shared_ptr< logger_interface > get_logger() const
Get the logger interface.
std::shared_ptr< monitoring_interface > monitor_
BridgeMetrics cached_metrics_
std::shared_ptr< logger_interface > logger_
VoidResult initialize(const BridgeConfig &config) override
Initialize the bridge with configuration.
VoidResult shutdown() override
Shutdown the bridge.
BackendType get_backend_type() const
Get the backend type.
ObservabilityBridge(std::shared_ptr< logger_interface > logger, std::shared_ptr< monitoring_interface > monitor, BackendType backend_type=BackendType::Standalone)
Construct bridge with logger and monitoring interfaces.
std::shared_ptr< monitoring_interface > get_monitor() const
Get the monitoring interface.
BackendType
Type of observability backend.
@ CommonSystem
Uses common_system's ILogger and IMonitor.
constexpr int invalid_argument
constexpr int already_exists
VoidResult error_void(int code, const std::string &message, const std::string &source="network_system", const std::string &details="")
Observability (logger and monitoring) integration bridge for network_system.
Configuration for bridge initialization.
Metrics and health information for a bridge.
std::chrono::steady_clock::time_point last_activity
Timestamp of last activity or health check.
std::map< std::string, double > custom_metrics
Bridge-specific custom metrics.
bool is_healthy
Overall health status of the bridge.