diff --git a/legacy/CMakeLists.txt b/legacy/CMakeLists.txt index e3b11dd7..7d91509f 100644 --- a/legacy/CMakeLists.txt +++ b/legacy/CMakeLists.txt @@ -70,6 +70,9 @@ if (USE_RDK_LOGGER) target_link_libraries(${PLUGIN_LEGACY_WIFI} PRIVATE ${RDKLOGGER_LIBRARIES}) endif (USE_RDK_LOGGER) +# Link OpenTelemetry RDK wrapper library +target_link_libraries(${PLUGIN_LEGACY_WIFI} PRIVATE rdk_otlp) + set_target_properties(${PLUGIN_LEGACY_WIFI} PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED YES) diff --git a/legacy/LegacyWiFiManagerAPIs.cpp b/legacy/LegacyWiFiManagerAPIs.cpp index a075e43e..83b8bce6 100644 --- a/legacy/LegacyWiFiManagerAPIs.cpp +++ b/legacy/LegacyWiFiManagerAPIs.cpp @@ -20,6 +20,7 @@ #include "LegacyWiFiManagerAPIs.h" #include "NetworkManagerLogger.h" #include "NetworkManagerJsonEnum.h" +#include "rdk_otlp_instrumentation.h" using namespace std; using namespace WPEFramework::Plugin; @@ -133,6 +134,9 @@ namespace WPEFramework m_service->AddRef(); + // Initialize OpenTelemetry + rdk_otlp_init("WiFiManager", "1.0.0"); + string callsign(NETWORK_MANAGER_CALLSIGN); string token = ""; @@ -384,6 +388,12 @@ namespace WPEFramework uint32_t WiFiManager::getConnectedSSID (const JsonObject& parameters, JsonObject& response) { LOG_INPARAM(); + + // Start distributed trace (creates parent span and stores context) + NMLOG_ERROR("BEFORE OTLP DIST TRACE START"); + rdk_otlp_start_distributed_trace("WiFiManager.getConnectedSSID", "get"); + NMLOG_ERROR("AFTER OTLP DIST TRACE START"); + uint32_t rc = Core::ERROR_GENERAL; Exchange::INetworkManager::WiFiSSIDInfo ssidInfo{}; @@ -406,6 +416,9 @@ namespace WPEFramework response["signalStrength"] = ssidInfo.strength; response["frequency"] = ssidInfo.frequency; } + NMLOG_ERROR("BEFORE OTLP DIST TRACE END"); + rdk_otlp_finish_distributed_trace(); + NMLOG_ERROR("AFTER OTLP DIST TRACE END"); returnJson(rc); } diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt index abfd9998..555f6c61 100644 --- a/plugin/CMakeLists.txt +++ b/plugin/CMakeLists.txt @@ -66,6 +66,7 @@ add_library(${MODULE_NAME} SHARED target_link_libraries(${MODULE_NAME} PRIVATE ${NAMESPACE}Core::${NAMESPACE}Core ${NAMESPACE}Plugins::${NAMESPACE}Plugins + rdk_otlp ) set_target_properties(${MODULE_NAME} PROPERTIES @@ -141,6 +142,9 @@ if (USE_RDK_LOGGER) target_link_libraries(${MODULE_IMPL_NAME} PRIVATE ${RDKLOGGER_LIBRARIES}) endif (USE_RDK_LOGGER) +# Link OpenTelemetry RDK wrapper library +target_link_libraries(${MODULE_IMPL_NAME} PRIVATE rdk_otlp) + install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${STORAGE_DIRECTORY}/plugins) install(TARGETS ${MODULE_IMPL_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/${STORAGE_DIRECTORY}/plugins) diff --git a/plugin/NetworkManager.cpp b/plugin/NetworkManager.cpp index 1049e503..7ef6358e 100644 --- a/plugin/NetworkManager.cpp +++ b/plugin/NetworkManager.cpp @@ -18,6 +18,7 @@ **/ #include "NetworkManager.h" +#include "rdk_otlp_instrumentation.h" #include namespace WPEFramework @@ -67,6 +68,8 @@ namespace WPEFramework // Syslog Startup messages are always printed by default SYSLOG(Logging::Startup, (_T("Initializing NetworkManager"))); NetworkManagerLogger::Init(); + // Initialize OpenTelemetry + rdk_otlp_init("NetworkManager", "1.0.0"); // Register the Connection::Notification first. Do this before we start our actual plugin // in case something goes wrong or is disconnected - this way we know we're at least registered // for activate/deactivate events diff --git a/plugin/rdk/NetworkManagerRDKProxy.cpp b/plugin/rdk/NetworkManagerRDKProxy.cpp index 608d22d7..19e89348 100644 --- a/plugin/rdk/NetworkManagerRDKProxy.cpp +++ b/plugin/rdk/NetworkManagerRDKProxy.cpp @@ -20,6 +20,7 @@ #include "NetworkManagerConnectivity.h" #include "NetworkManagerRDKProxy.h" #include "libIBus.h" +#include "rdk_otlp_instrumentation.h" #include using namespace WPEFramework; @@ -1157,6 +1158,9 @@ const string CIDR_PREFIXES[CIDR_NETMASK_IP_LEN+1] = { uint32_t NetworkManagerImplementation::GetConnectedSSID(WiFiSSIDInfo& ssidInfo /* @out */) { LOG_ENTRY_FUNCTION(); + NMLOG_INFO ("Before OTLP Trace start"); + rdk_otlp_start_distributed_trace("ConnectedSSID", "get"); + NMLOG_INFO ("After OTLP Trace start"); uint32_t rc = Core::ERROR_RPC_CALL_FAILED; IARM_Result_t retVal = IARM_RESULT_SUCCESS; IARM_Bus_WiFiSrvMgr_Param_t param{}; @@ -1199,6 +1203,9 @@ const string CIDR_PREFIXES[CIDR_NETMASK_IP_LEN+1] = { { NMLOG_ERROR ("GetConnectedSSID failed"); } + NMLOG_INFO ("Before OTLP Trace end"); + rdk_otlp_finish_distributed_trace(); + NMLOG_INFO ("Before OTLP Trace end"); return rc; }