10 std::shared_ptr<logger_interface> logger,
11 std::shared_ptr<monitoring_interface> monitor,
BackendType backend_type) {
15 "ObservabilityBridge requires non-null logger",
16 "ObservabilityBridge::create");
21 "ObservabilityBridge requires non-null monitor",
22 "ObservabilityBridge::create");
24 return ok(std::shared_ptr<ObservabilityBridge>(
29 std::shared_ptr<logger_interface> logger,
30 std::shared_ptr<monitoring_interface> monitor,
32 : logger_(std::move(logger))
33 , monitor_(std::move(monitor))
34 , backend_type_(backend_type) {
47 "ObservabilityBridge already initialized",
48 "ObservabilityBridge::initialize");
55 "ObservabilityBridge::initialize");
62 "ObservabilityBridge::initialize");
66 auto enabled_it =
config.properties.find(
"enabled");
67 if (enabled_it !=
config.properties.end() && enabled_it->second ==
"false") {
70 "Bridge is disabled in configuration",
71 "ObservabilityBridge::initialize");
75 auto monitoring_enabled_it =
config.properties.find(
"enable_monitoring");
77 monitoring_enabled_it->second !=
"false");
158#if KCENON_WITH_COMMON_SYSTEM
160 std::shared_ptr<::kcenon::common::interfaces::ILogger> logger,
161 std::shared_ptr<::kcenon::common::interfaces::IMonitor> monitor) {
165 "ObservabilityBridge::from_common_system requires non-null logger",
166 "ObservabilityBridge::from_common_system");
171 "ObservabilityBridge::from_common_system requires non-null monitor",
172 "ObservabilityBridge::from_common_system");
174 auto adapted_logger = std::make_shared<common_system_logger_adapter>();
175 auto adapted_monitor = std::make_shared<basic_monitoring>();
static Result< std::shared_ptr< ObservabilityBridge > > create(std::shared_ptr< logger_interface > logger, std::shared_ptr< monitoring_interface > monitor, BackendType backend_type=BackendType::Standalone)
Construct bridge with logger and monitoring interfaces.
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_
ObservabilityBridge(std::shared_ptr< logger_interface > logger, std::shared_ptr< monitoring_interface > monitor, BackendType backend_type)
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.
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.