diff --git a/components/core/cmake/Options/options.cmake b/components/core/cmake/Options/options.cmake index 6a77334d12..85e54953e1 100644 --- a/components/core/cmake/Options/options.cmake +++ b/components/core/cmake/Options/options.cmake @@ -95,6 +95,12 @@ option( ON ) +option( + CLP_BUILD_CLP_S_SEARCH_ENABLE_OPENTELEMETRY_CPP + "Include open telemetry support for clp_s::search." + ON +) + option( CLP_BUILD_CLP_S_SEARCH_KQL "Build clp_s::search::kql." @@ -311,6 +317,8 @@ endfunction() function(validate_clp_s_ffi_sfa_dependencies) validate_clp_dependencies_for_target(CLP_BUILD_CLP_S_FFI_SFA CLP_BUILD_CLP_S_ARCHIVEREADER + CLP_BUILD_CLP_S_SEARCH + CLP_BUILD_CLP_S_SEARCH_KQL ) endfunction() @@ -392,10 +400,8 @@ function(set_clp_s_search_dependencies) set_clp_need_flags( CLP_NEED_ABSL CLP_NEED_LOG_SURGEON - CLP_NEED_OPENTELEMETRY_CPP CLP_NEED_SIMDJSON CLP_NEED_SPDLOG - CLP_NEED_XXHASH ) endfunction() @@ -405,6 +411,13 @@ function(set_clp_s_search_ast_dependencies) ) endfunction() +function(set_clp_s_search_enable_opentelemetry_cpp_dependencies) + set_clp_need_flags( + CLP_NEED_OPENTELEMETRY_CPP + CLP_NEED_XXHASH + ) +endfunction() + function(validate_clp_s_search_kql_dependencies) validate_clp_dependencies_for_target(CLP_BUILD_CLP_S_SEARCH_KQL CLP_BUILD_CLP_STRING_UTILS @@ -538,6 +551,10 @@ function(validate_and_setup_all_clp_dependency_flags) set_clp_s_search_ast_dependencies() endif() + if (CLP_BUILD_CLP_S_SEARCH_ENABLE_OPENTELEMETRY_CPP) + set_clp_s_search_enable_opentelemetry_cpp_dependencies() + endif() + if (CLP_BUILD_CLP_S_SEARCH_KQL) validate_clp_s_search_kql_dependencies() set_clp_s_search_kql_dependencies() diff --git a/components/core/src/clp_s/InputConfig.cpp b/components/core/src/clp_s/InputConfig.cpp index e7c310a3da..26053ed22e 100644 --- a/components/core/src/clp_s/InputConfig.cpp +++ b/components/core/src/clp_s/InputConfig.cpp @@ -18,6 +18,9 @@ #if CLP_BUILD_CLP_S_ENABLE_LIBARCHIVE #include #include + + #include "../clp/LibarchiveFileReader.hpp" + #include "../clp/LibarchiveReader.hpp" #endif #include @@ -27,8 +30,6 @@ #include "../clp/ErrorCode.hpp" #include "../clp/ffi/ir_stream/protocol_constants.hpp" #include "../clp/FileReader.hpp" -#include "../clp/LibarchiveFileReader.hpp" -#include "../clp/LibarchiveReader.hpp" #include "../clp/ReaderInterface.hpp" #include "../clp/spdlog_with_specializations.hpp" #include "../clp/streaming_compression/Decompressor.hpp" diff --git a/components/core/src/clp_s/ffi/CMakeLists.txt b/components/core/src/clp_s/ffi/CMakeLists.txt index c1988cb2f6..eb9c69a4cc 100644 --- a/components/core/src/clp_s/ffi/CMakeLists.txt +++ b/components/core/src/clp_s/ffi/CMakeLists.txt @@ -18,6 +18,7 @@ if(CLP_BUILD_CLP_S_FFI_SFA) clp_s_ffi_sfa PUBLIC clp_s::archive_reader + clp_s::search ystdlib::error_handling PRIVATE spdlog::spdlog diff --git a/components/core/src/clp_s/search/CMakeLists.txt b/components/core/src/clp_s/search/CMakeLists.txt index e33dd669d3..ed537cc78d 100644 --- a/components/core/src/clp_s/search/CMakeLists.txt +++ b/components/core/src/clp_s/search/CMakeLists.txt @@ -21,9 +21,7 @@ set( QueryRunner.hpp SchemaMatch.cpp SchemaMatch.hpp - SearchTelemetry.cpp SearchTelemetry.hpp - TelemetryContext.cpp TelemetryContext.hpp ) @@ -47,11 +45,30 @@ if(CLP_BUILD_CLP_S_SEARCH) clp::string_utils clp_s::clp_dependencies clp_s::io - opentelemetry-cpp::api - opentelemetry-cpp::otlp_http_exporter - opentelemetry-cpp::resources - opentelemetry-cpp::trace spdlog::spdlog - xxHash::xxhash ) + if(CLP_BUILD_CLP_S_SEARCH_ENABLE_OPENTELEMETRY_CPP) + target_sources( + clp_s_search + PRIVATE + SearchTelemetry.cpp + TelemetryContext.cpp + ) + target_link_libraries( + clp_s_search + PRIVATE + opentelemetry-cpp::api + opentelemetry-cpp::otlp_http_exporter + opentelemetry-cpp::resources + opentelemetry-cpp::trace + xxHash::xxhash + ) + else() + target_sources( + clp_s_search + PRIVATE + SearchTelemetryNoop.cpp + TelemetryContextNoop.cpp + ) + endif() endif() diff --git a/components/core/src/clp_s/search/SearchTelemetryNoop.cpp b/components/core/src/clp_s/search/SearchTelemetryNoop.cpp new file mode 100644 index 0000000000..a92dbe2446 --- /dev/null +++ b/components/core/src/clp_s/search/SearchTelemetryNoop.cpp @@ -0,0 +1,33 @@ +#include +#include +#include + +#include "SearchTelemetry.hpp" + +namespace clp_s::search { +class SearchTelemetrySpan::Impl {}; + +SearchTelemetrySpan::SearchTelemetrySpan() : m_impl{std::make_unique()} {} + +SearchTelemetrySpan::~SearchTelemetrySpan() = default; + +auto SearchTelemetrySpan::set_archive_context(std::string_view) -> void {} + +auto SearchTelemetrySpan::set_error(std::string_view) -> void {} + +auto SearchTelemetrySpan::set_query_context(std::string_view) -> void {} + +auto SearchTelemetrySpan::set_query_shape_metrics(QueryShapeMetrics const&) -> void {} + +auto SearchTelemetrySpan::set_search_result_metrics(SearchResultMetrics const&) -> void {} + +auto SearchTelemetrySpan::set_termination_stage(std::string_view) -> void {} + +auto QueryShapeMetrics::create( + std::shared_ptr const&, + std::optional, + std::optional +) -> QueryShapeMetrics { + return {}; +} +} // namespace clp_s::search diff --git a/components/core/src/clp_s/search/TelemetryContextNoop.cpp b/components/core/src/clp_s/search/TelemetryContextNoop.cpp new file mode 100644 index 0000000000..7f75ed49b0 --- /dev/null +++ b/components/core/src/clp_s/search/TelemetryContextNoop.cpp @@ -0,0 +1,11 @@ +#include + +#include "TelemetryContext.hpp" + +namespace clp_s::search { +class TelemetryContext::Impl {}; + +TelemetryContext::TelemetryContext() : m_impl{std::make_unique()} {} + +TelemetryContext::~TelemetryContext() = default; +} // namespace clp_s::search