From 6155bd6b616541888c4ab59d5229ef779402662a Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Mon, 30 Jun 2025 19:00:18 -0600 Subject: [PATCH 1/8] fix clang-tidy cppcoreguidelines-special-member-functions warnings --- .../opentelemetry/exporters/otlp/otlp_grpc_client.h | 5 ++++- .../exporters/otlp/otlp_grpc_client_options.h | 7 +++++++ .../opentelemetry/exporters/otlp/otlp_grpc_exporter.h | 4 ++++ .../exporters/otlp/otlp_grpc_exporter_options.h | 1 - .../exporters/otlp/otlp_grpc_log_record_exporter.h | 4 ++++ .../exporters/otlp/otlp_grpc_log_record_exporter_options.h | 1 - .../exporters/otlp/otlp_grpc_metric_exporter.h | 4 ++++ .../exporters/otlp/otlp_grpc_metric_exporter_options.h | 1 - exporters/otlp/src/otlp_grpc_exporter_options.cc | 2 -- .../otlp/src/otlp_grpc_log_record_exporter_options.cc | 2 -- exporters/otlp/src/otlp_grpc_metric_exporter_options.cc | 2 -- 11 files changed, 23 insertions(+), 10 deletions(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h index 159ac0227d..2a60a28a21 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h @@ -106,8 +106,11 @@ class OtlpGrpcClient { public: OtlpGrpcClient(const OtlpGrpcClientOptions &options); - ~OtlpGrpcClient(); + OtlpGrpcClient(const OtlpGrpcClient &) = delete; + OtlpGrpcClient(OtlpGrpcClient &&) = delete; + OtlpGrpcClient &operator=(const OtlpGrpcClient &) = delete; + OtlpGrpcClient &operator=(OtlpGrpcClient &&) = delete; static std::string GetGrpcTarget(const std::string &endpoint); diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h index 0ffe5ba72e..48388a533c 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h @@ -23,6 +23,13 @@ namespace otlp struct OtlpGrpcClientOptions { + virtual ~OtlpGrpcClientOptions() = default; + OtlpGrpcClientOptions() = default; + OtlpGrpcClientOptions(const OtlpGrpcClientOptions &) = default; + OtlpGrpcClientOptions(OtlpGrpcClientOptions &&) = default; + OtlpGrpcClientOptions &operator=(const OtlpGrpcClientOptions &) = default; + OtlpGrpcClientOptions &operator=(OtlpGrpcClientOptions &&) = default; + /** The endpoint to export to. */ std::string endpoint; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h index 1022b0dc8f..f698b8fb5d 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h @@ -58,6 +58,10 @@ class OtlpGrpcExporter final : public opentelemetry::sdk::trace::SpanExporter explicit OtlpGrpcExporter(const OtlpGrpcExporterOptions &options); ~OtlpGrpcExporter() override; + OtlpGrpcExporter(const OtlpGrpcExporter &) = delete; + OtlpGrpcExporter(OtlpGrpcExporter &&) = delete; + OtlpGrpcExporter &operator=(const OtlpGrpcExporter &) = delete; + OtlpGrpcExporter &operator=(OtlpGrpcExporter &&) = delete; /** * Create a span recordable. diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h index b2556f1f76..34ccf69d4e 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h @@ -24,7 +24,6 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpGrpcExporterOptions : public OtlpGrpcClientOptions { OtlpGrpcExporterOptions(); - ~OtlpGrpcExporterOptions(); }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter.h index da278ccd28..888c368b28 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter.h @@ -57,6 +57,10 @@ class OtlpGrpcLogRecordExporter : public opentelemetry::sdk::logs::LogRecordExpo OtlpGrpcLogRecordExporter(const OtlpGrpcLogRecordExporterOptions &options); ~OtlpGrpcLogRecordExporter() override; + OtlpGrpcLogRecordExporter(const OtlpGrpcLogRecordExporter &) = delete; + OtlpGrpcLogRecordExporter(OtlpGrpcLogRecordExporter &&) = delete; + OtlpGrpcLogRecordExporter &operator=(const OtlpGrpcLogRecordExporter &) = delete; + OtlpGrpcLogRecordExporter &operator=(OtlpGrpcLogRecordExporter &&) = delete; /** * Creates a recordable that stores the data in protobuf. diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h index 8438bb080d..3bc5f8cb6d 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h @@ -24,7 +24,6 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpGrpcLogRecordExporterOptions : public OtlpGrpcClientOptions { OtlpGrpcLogRecordExporterOptions(); - ~OtlpGrpcLogRecordExporterOptions(); }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter.h index d3d857b3f0..4272bf2126 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter.h @@ -55,6 +55,10 @@ class OtlpGrpcMetricExporter : public opentelemetry::sdk::metrics::PushMetricExp explicit OtlpGrpcMetricExporter(const OtlpGrpcMetricExporterOptions &options); ~OtlpGrpcMetricExporter() override; + OtlpGrpcMetricExporter(const OtlpGrpcMetricExporter &) = delete; + OtlpGrpcMetricExporter(OtlpGrpcMetricExporter &&) = delete; + OtlpGrpcMetricExporter &operator=(const OtlpGrpcMetricExporter &) = delete; + OtlpGrpcMetricExporter &operator=(OtlpGrpcMetricExporter &&) = delete; /** * Get the AggregationTemporality for exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h index 22be580972..889337b2d2 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h @@ -25,7 +25,6 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpGrpcMetricExporterOptions : public OtlpGrpcClientOptions { OtlpGrpcMetricExporterOptions(); - ~OtlpGrpcMetricExporterOptions(); /** Preferred Aggregation Temporality. */ PreferredAggregationTemporality aggregation_temporality; diff --git a/exporters/otlp/src/otlp_grpc_exporter_options.cc b/exporters/otlp/src/otlp_grpc_exporter_options.cc index 1f921abdbc..de9b2b5f68 100644 --- a/exporters/otlp/src/otlp_grpc_exporter_options.cc +++ b/exporters/otlp/src/otlp_grpc_exporter_options.cc @@ -45,8 +45,6 @@ OtlpGrpcExporterOptions::OtlpGrpcExporterOptions() retry_policy_backoff_multiplier = GetOtlpDefaultTracesRetryBackoffMultiplier(); } -OtlpGrpcExporterOptions::~OtlpGrpcExporterOptions() {} - } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc b/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc index 6bdf8fb98f..7460efa911 100644 --- a/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc +++ b/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc @@ -45,8 +45,6 @@ OtlpGrpcLogRecordExporterOptions::OtlpGrpcLogRecordExporterOptions() retry_policy_backoff_multiplier = GetOtlpDefaultLogsRetryBackoffMultiplier(); } -OtlpGrpcLogRecordExporterOptions::~OtlpGrpcLogRecordExporterOptions() {} - } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc b/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc index a75b95b11f..96ad88645d 100644 --- a/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc +++ b/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc @@ -47,8 +47,6 @@ OtlpGrpcMetricExporterOptions::OtlpGrpcMetricExporterOptions() retry_policy_backoff_multiplier = GetOtlpDefaultMetricsRetryBackoffMultiplier(); } -OtlpGrpcMetricExporterOptions::~OtlpGrpcMetricExporterOptions() {} - } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE From 235d081b1e94b795bd3304d4b0e8394b0e42d242 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Mon, 30 Jun 2025 19:07:16 -0600 Subject: [PATCH 2/8] fix clang-tidy performance-unnecessary-value-param warning --- exporters/otlp/src/otlp_grpc_client.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exporters/otlp/src/otlp_grpc_client.cc b/exporters/otlp/src/otlp_grpc_client.cc index 2bc66aa739..a51740404f 100644 --- a/exporters/otlp/src/otlp_grpc_client.cc +++ b/exporters/otlp/src/otlp_grpc_client.cc @@ -238,7 +238,7 @@ static sdk::common::ExportResult InternalDelegateAsyncExport( stub->experimental_async() # endif ->Export(call_data->grpc_context.get(), call_data->request, call_data->response, - [call_data, async_data, export_data_name](::grpc::Status grpc_status) { + [call_data, async_data, export_data_name](const ::grpc::Status &grpc_status) { { std::lock_guard lock{async_data->running_calls_lock}; async_data->running_calls.erase( From d1dc649b780de22a2dc797b0c892491db81129a4 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Mon, 30 Jun 2025 20:49:51 -0600 Subject: [PATCH 3/8] fix clang-tidy cppcoreguidelines-special-member-functions warnings in otlp http --- .../exporters/otlp/otlp_http_client.h | 25 ++++++------------- .../otlp/otlp_http_exporter_options.h | 1 - .../otlp/otlp_http_exporter_runtime_options.h | 3 +-- .../otlp_http_log_record_exporter_options.h | 1 - ...http_log_record_exporter_runtime_options.h | 3 +-- .../otlp/otlp_http_metric_exporter_options.h | 1 - ...tlp_http_metric_exporter_runtime_options.h | 3 +-- exporters/otlp/src/otlp_http_client.cc | 5 ++-- .../otlp/src/otlp_http_exporter_options.cc | 2 -- .../otlp_http_log_record_exporter_options.cc | 2 -- .../src/otlp_http_metric_exporter_options.cc | 2 -- 11 files changed, 12 insertions(+), 36 deletions(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h index 5cb5fdfbc6..346ae172cc 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h @@ -159,6 +159,10 @@ class OtlpHttpClient explicit OtlpHttpClient(OtlpHttpClientOptions &&options); ~OtlpHttpClient(); + OtlpHttpClient(const OtlpHttpClient &) = delete; + OtlpHttpClient &operator=(const OtlpHttpClient &) = delete; + OtlpHttpClient(OtlpHttpClient &&) = delete; + OtlpHttpClient &operator=(OtlpHttpClient &&) = delete; /** * Sync export @@ -230,28 +234,13 @@ class OtlpHttpClient std::shared_ptr session; std::shared_ptr event_handle; - inline HttpSessionData() = default; - - inline explicit HttpSessionData( - std::shared_ptr &&input_session, - std::shared_ptr &&input_handle) + explicit HttpSessionData( + std::shared_ptr input_session, + std::shared_ptr input_handle) { session.swap(input_session); event_handle.swap(input_handle); } - - inline HttpSessionData(HttpSessionData &&other) - { - session.swap(other.session); - event_handle.swap(other.event_handle); - } - - inline HttpSessionData &operator=(HttpSessionData &&other) noexcept - { - session.swap(other.session); - event_handle.swap(other.event_handle); - return *this; - } }; /** diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h index 52f2208575..914f855026 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h @@ -33,7 +33,6 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpHttpExporterOptions { OtlpHttpExporterOptions(); - ~OtlpHttpExporterOptions(); /** The endpoint to export to. */ std::string url; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_runtime_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_runtime_options.h index 02ec76acf9..b5e11b377e 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_runtime_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_runtime_options.h @@ -19,8 +19,7 @@ namespace otlp */ struct OPENTELEMETRY_EXPORT OtlpHttpExporterRuntimeOptions { - OtlpHttpExporterRuntimeOptions() = default; - ~OtlpHttpExporterRuntimeOptions() = default; + OtlpHttpExporterRuntimeOptions() = default; std::shared_ptr thread_instrumentation = std::shared_ptr(nullptr); diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h index 78160deeb0..eda44dd4a8 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h @@ -33,7 +33,6 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpHttpLogRecordExporterOptions { OtlpHttpLogRecordExporterOptions(); - ~OtlpHttpLogRecordExporterOptions(); /** The endpoint to export to. */ std::string url; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_runtime_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_runtime_options.h index b5ef2ed967..09213731af 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_runtime_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_runtime_options.h @@ -19,8 +19,7 @@ namespace otlp */ struct OPENTELEMETRY_EXPORT OtlpHttpLogRecordExporterRuntimeOptions { - OtlpHttpLogRecordExporterRuntimeOptions() = default; - ~OtlpHttpLogRecordExporterRuntimeOptions() = default; + OtlpHttpLogRecordExporterRuntimeOptions() = default; std::shared_ptr thread_instrumentation = std::shared_ptr(nullptr); diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h index 255491a39f..c1551194c5 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h @@ -34,7 +34,6 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpHttpMetricExporterOptions { OtlpHttpMetricExporterOptions(); - ~OtlpHttpMetricExporterOptions(); /** The endpoint to export to. */ std::string url; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_runtime_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_runtime_options.h index c0e91a342c..a26d54b9ff 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_runtime_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_runtime_options.h @@ -19,8 +19,7 @@ namespace otlp */ struct OPENTELEMETRY_EXPORT OtlpHttpMetricExporterRuntimeOptions { - OtlpHttpMetricExporterRuntimeOptions() = default; - ~OtlpHttpMetricExporterRuntimeOptions() = default; + OtlpHttpMetricExporterRuntimeOptions() = default; std::shared_ptr thread_instrumentation = std::shared_ptr(nullptr); diff --git a/exporters/otlp/src/otlp_http_client.cc b/exporters/otlp/src/otlp_http_client.cc index 77f4df3eed..478960cecc 100644 --- a/exporters/otlp/src/otlp_http_client.cc +++ b/exporters/otlp/src/otlp_http_client.cc @@ -1000,9 +1000,8 @@ OtlpHttpClient::createSession( // Returns the created session data return HttpSessionData{ - std::move(session), - std::shared_ptr{ - new ResponseHandler(std::move(result_callback), options_.console_debug)}}; + session, std::shared_ptr{ + new ResponseHandler(std::move(result_callback), options_.console_debug)}}; } void OtlpHttpClient::addSession(HttpSessionData &&session_data) noexcept diff --git a/exporters/otlp/src/otlp_http_exporter_options.cc b/exporters/otlp/src/otlp_http_exporter_options.cc index 7a75018e13..8237cffec4 100644 --- a/exporters/otlp/src/otlp_http_exporter_options.cc +++ b/exporters/otlp/src/otlp_http_exporter_options.cc @@ -43,8 +43,6 @@ OtlpHttpExporterOptions::OtlpHttpExporterOptions() retry_policy_backoff_multiplier(GetOtlpDefaultTracesRetryBackoffMultiplier()) {} -OtlpHttpExporterOptions::~OtlpHttpExporterOptions() {} - } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_http_log_record_exporter_options.cc b/exporters/otlp/src/otlp_http_log_record_exporter_options.cc index 212bc3f6cd..208b9ef3c3 100644 --- a/exporters/otlp/src/otlp_http_log_record_exporter_options.cc +++ b/exporters/otlp/src/otlp_http_log_record_exporter_options.cc @@ -43,8 +43,6 @@ OtlpHttpLogRecordExporterOptions::OtlpHttpLogRecordExporterOptions() retry_policy_backoff_multiplier(GetOtlpDefaultLogsRetryBackoffMultiplier()) {} -OtlpHttpLogRecordExporterOptions::~OtlpHttpLogRecordExporterOptions() {} - } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_http_metric_exporter_options.cc b/exporters/otlp/src/otlp_http_metric_exporter_options.cc index 0ccdc0ab94..d4ea6fd212 100644 --- a/exporters/otlp/src/otlp_http_metric_exporter_options.cc +++ b/exporters/otlp/src/otlp_http_metric_exporter_options.cc @@ -45,8 +45,6 @@ OtlpHttpMetricExporterOptions::OtlpHttpMetricExporterOptions() retry_policy_backoff_multiplier(GetOtlpDefaultMetricsRetryBackoffMultiplier()) {} -OtlpHttpMetricExporterOptions::~OtlpHttpMetricExporterOptions() {} - } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE From ad1ce65161a3860b16d869125ff7c6a20438f776 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Mon, 30 Jun 2025 20:50:02 -0600 Subject: [PATCH 4/8] fix clang-tidy cppcoreguidelines-avoid-const-or-ref-data-members warning in otlp http --- .../opentelemetry/exporters/otlp/otlp_http_metric_exporter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter.h index 8733a740a9..72774f3606 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter.h @@ -72,7 +72,7 @@ class OtlpHttpMetricExporter final : public opentelemetry::sdk::metrics::PushMet OtlpHttpMetricExporterRuntimeOptions runtime_options_; // Aggregation Temporality Selector - const sdk::metrics::AggregationTemporalitySelector aggregation_temporality_selector_; + sdk::metrics::AggregationTemporalitySelector aggregation_temporality_selector_; // Object that stores the HTTP sessions that have been created std::unique_ptr http_client_; From 398b422f0a5b6d6a50c27b16fe61745e3e77edc5 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Mon, 30 Jun 2025 21:20:29 -0600 Subject: [PATCH 5/8] fix ci issues. HttpSesisonData needs a default constructor. Initialize unintialized members of grpc client options --- .../opentelemetry/exporters/otlp/otlp_grpc_client_options.h | 6 +++--- .../include/opentelemetry/exporters/otlp/otlp_http_client.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h index 48388a533c..f377ef7d09 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client_options.h @@ -34,7 +34,7 @@ struct OtlpGrpcClientOptions std::string endpoint; /** Use SSL. */ - bool use_ssl_credentials; + bool use_ssl_credentials{}; /** CA CERT, path to a file. */ std::string ssl_credentials_cacert_path; @@ -71,14 +71,14 @@ struct OtlpGrpcClientOptions std::string user_agent; /** max number of threads that can be allocated from this */ - std::size_t max_threads; + std::size_t max_threads{}; /** Compression type. */ std::string compression; #ifdef ENABLE_ASYNC_EXPORT // Concurrent requests - std::size_t max_concurrent_requests; + std::size_t max_concurrent_requests{}; #endif /** The maximum number of call attempts, including the original attempt. */ diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h index 346ae172cc..8014e1e1ab 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h @@ -234,6 +234,8 @@ class OtlpHttpClient std::shared_ptr session; std::shared_ptr event_handle; + HttpSessionData() = default; + explicit HttpSessionData( std::shared_ptr input_session, std::shared_ptr input_handle) From aaa8dc52dc5bfc79d677166628ad7796c99a1298 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Wed, 9 Jul 2025 13:00:25 -0600 Subject: [PATCH 6/8] add explicitly defined destructors to cc files for otlp options classes --- .../exporters/otlp/otlp_file_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_file_log_record_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_file_metric_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_grpc_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_grpc_log_record_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_grpc_metric_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_http_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_http_log_record_exporter_options.h | 5 +++++ .../exporters/otlp/otlp_http_metric_exporter_options.h | 5 +++++ exporters/otlp/src/otlp_file_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_file_log_record_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_file_metric_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_grpc_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_grpc_metric_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_http_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_http_log_record_exporter_options.cc | 2 ++ exporters/otlp/src/otlp_http_metric_exporter_options.cc | 2 ++ 18 files changed, 63 insertions(+) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_exporter_options.h index 1dd2ebfd7f..b4c4f36c01 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_exporter_options.h @@ -22,6 +22,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpFileExporterOptions : public OtlpFileClientOptions { OtlpFileExporterOptions(); + OtlpFileExporterOptions(const OtlpFileExporterOptions &) = default; + OtlpFileExporterOptions(OtlpFileExporterOptions &&) = default; + OtlpFileExporterOptions &operator=(const OtlpFileExporterOptions &) = default; + OtlpFileExporterOptions &operator=(OtlpFileExporterOptions &&) = default; + ~OtlpFileExporterOptions() override; }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_log_record_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_log_record_exporter_options.h index caeb3daaf4..cca6fc8e10 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_log_record_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_log_record_exporter_options.h @@ -22,6 +22,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpFileLogRecordExporterOptions : public OtlpFileClientOptions { OtlpFileLogRecordExporterOptions(); + OtlpFileLogRecordExporterOptions(const OtlpFileLogRecordExporterOptions &) = default; + OtlpFileLogRecordExporterOptions(OtlpFileLogRecordExporterOptions &&) = default; + OtlpFileLogRecordExporterOptions &operator=(const OtlpFileLogRecordExporterOptions &) = default; + OtlpFileLogRecordExporterOptions &operator=(OtlpFileLogRecordExporterOptions &&) = default; + ~OtlpFileLogRecordExporterOptions() override; }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_metric_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_metric_exporter_options.h index 3e946e482b..d89dcbd3cf 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_metric_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_file_metric_exporter_options.h @@ -23,6 +23,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpFileMetricExporterOptions : public OtlpFileClientOptions { OtlpFileMetricExporterOptions(); + OtlpFileMetricExporterOptions(const OtlpFileMetricExporterOptions &) = default; + OtlpFileMetricExporterOptions(OtlpFileMetricExporterOptions &&) = default; + OtlpFileMetricExporterOptions &operator=(const OtlpFileMetricExporterOptions &) = default; + OtlpFileMetricExporterOptions &operator=(OtlpFileMetricExporterOptions &&) = default; + ~OtlpFileMetricExporterOptions() override; PreferredAggregationTemporality aggregation_temporality; }; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h index 34ccf69d4e..407296e251 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h @@ -24,6 +24,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpGrpcExporterOptions : public OtlpGrpcClientOptions { OtlpGrpcExporterOptions(); + OtlpGrpcExporterOptions(const OtlpGrpcExporterOptions &) = default; + OtlpGrpcExporterOptions(OtlpGrpcExporterOptions &&) = default; + OtlpGrpcExporterOptions &operator=(const OtlpGrpcExporterOptions &) = default; + OtlpGrpcExporterOptions &operator=(OtlpGrpcExporterOptions &&) = default; + ~OtlpGrpcExporterOptions() override; }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h index 3bc5f8cb6d..5f5b2b0a1f 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h @@ -24,6 +24,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpGrpcLogRecordExporterOptions : public OtlpGrpcClientOptions { OtlpGrpcLogRecordExporterOptions(); + OtlpGrpcLogRecordExporterOptions(const OtlpGrpcLogRecordExporterOptions &) = default; + OtlpGrpcLogRecordExporterOptions(OtlpGrpcLogRecordExporterOptions &&) = default; + OtlpGrpcLogRecordExporterOptions &operator=(const OtlpGrpcLogRecordExporterOptions &) = default; + OtlpGrpcLogRecordExporterOptions &operator=(OtlpGrpcLogRecordExporterOptions &&) = default; + ~OtlpGrpcLogRecordExporterOptions() override; }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h index 889337b2d2..82dcab3881 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h @@ -25,6 +25,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpGrpcMetricExporterOptions : public OtlpGrpcClientOptions { OtlpGrpcMetricExporterOptions(); + OtlpGrpcMetricExporterOptions(const OtlpGrpcMetricExporterOptions &) = default; + OtlpGrpcMetricExporterOptions(OtlpGrpcMetricExporterOptions &&) = default; + OtlpGrpcMetricExporterOptions &operator=(const OtlpGrpcMetricExporterOptions &) = default; + OtlpGrpcMetricExporterOptions &operator=(OtlpGrpcMetricExporterOptions &&) = default; + ~OtlpGrpcMetricExporterOptions() override; /** Preferred Aggregation Temporality. */ PreferredAggregationTemporality aggregation_temporality; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h index 914f855026..251387e124 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_options.h @@ -33,6 +33,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpHttpExporterOptions { OtlpHttpExporterOptions(); + OtlpHttpExporterOptions(const OtlpHttpExporterOptions &) = default; + OtlpHttpExporterOptions(OtlpHttpExporterOptions &&) = default; + OtlpHttpExporterOptions &operator=(const OtlpHttpExporterOptions &) = default; + OtlpHttpExporterOptions &operator=(OtlpHttpExporterOptions &&) = default; + ~OtlpHttpExporterOptions(); /** The endpoint to export to. */ std::string url; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h index eda44dd4a8..14c7f1a7cf 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h @@ -33,6 +33,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpHttpLogRecordExporterOptions { OtlpHttpLogRecordExporterOptions(); + OtlpHttpLogRecordExporterOptions(const OtlpHttpLogRecordExporterOptions &) = default; + OtlpHttpLogRecordExporterOptions(OtlpHttpLogRecordExporterOptions &&) = default; + OtlpHttpLogRecordExporterOptions &operator=(const OtlpHttpLogRecordExporterOptions &) = default; + OtlpHttpLogRecordExporterOptions &operator=(OtlpHttpLogRecordExporterOptions &&) = default; + ~OtlpHttpLogRecordExporterOptions(); /** The endpoint to export to. */ std::string url; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h index c1551194c5..c0b8a39eba 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h @@ -34,6 +34,11 @@ namespace otlp struct OPENTELEMETRY_EXPORT OtlpHttpMetricExporterOptions { OtlpHttpMetricExporterOptions(); + OtlpHttpMetricExporterOptions(const OtlpHttpMetricExporterOptions &) = default; + OtlpHttpMetricExporterOptions(OtlpHttpMetricExporterOptions &&) = default; + OtlpHttpMetricExporterOptions &operator=(const OtlpHttpMetricExporterOptions &) = default; + OtlpHttpMetricExporterOptions &operator=(OtlpHttpMetricExporterOptions &&) = default; + ~OtlpHttpMetricExporterOptions(); /** The endpoint to export to. */ std::string url; diff --git a/exporters/otlp/src/otlp_file_exporter_options.cc b/exporters/otlp/src/otlp_file_exporter_options.cc index ddc371fdda..b5e9fa725f 100644 --- a/exporters/otlp/src/otlp_file_exporter_options.cc +++ b/exporters/otlp/src/otlp_file_exporter_options.cc @@ -27,6 +27,8 @@ OtlpFileExporterOptions::OtlpFileExporterOptions() backend_options = fs_options; } +OtlpFileExporterOptions::~OtlpFileExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_file_log_record_exporter_options.cc b/exporters/otlp/src/otlp_file_log_record_exporter_options.cc index abc628dc02..be794b2872 100644 --- a/exporters/otlp/src/otlp_file_log_record_exporter_options.cc +++ b/exporters/otlp/src/otlp_file_log_record_exporter_options.cc @@ -27,6 +27,8 @@ OtlpFileLogRecordExporterOptions::OtlpFileLogRecordExporterOptions() backend_options = fs_options; } +OtlpFileLogRecordExporterOptions::~OtlpFileLogRecordExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_file_metric_exporter_options.cc b/exporters/otlp/src/otlp_file_metric_exporter_options.cc index 22d2cc7c49..e1b1f5ca7a 100644 --- a/exporters/otlp/src/otlp_file_metric_exporter_options.cc +++ b/exporters/otlp/src/otlp_file_metric_exporter_options.cc @@ -28,6 +28,8 @@ OtlpFileMetricExporterOptions::OtlpFileMetricExporterOptions() backend_options = fs_options; } +OtlpFileMetricExporterOptions::~OtlpFileMetricExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_grpc_exporter_options.cc b/exporters/otlp/src/otlp_grpc_exporter_options.cc index de9b2b5f68..1f921abdbc 100644 --- a/exporters/otlp/src/otlp_grpc_exporter_options.cc +++ b/exporters/otlp/src/otlp_grpc_exporter_options.cc @@ -45,6 +45,8 @@ OtlpGrpcExporterOptions::OtlpGrpcExporterOptions() retry_policy_backoff_multiplier = GetOtlpDefaultTracesRetryBackoffMultiplier(); } +OtlpGrpcExporterOptions::~OtlpGrpcExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc b/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc index 7460efa911..6bdf8fb98f 100644 --- a/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc +++ b/exporters/otlp/src/otlp_grpc_log_record_exporter_options.cc @@ -45,6 +45,8 @@ OtlpGrpcLogRecordExporterOptions::OtlpGrpcLogRecordExporterOptions() retry_policy_backoff_multiplier = GetOtlpDefaultLogsRetryBackoffMultiplier(); } +OtlpGrpcLogRecordExporterOptions::~OtlpGrpcLogRecordExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc b/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc index 96ad88645d..a75b95b11f 100644 --- a/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc +++ b/exporters/otlp/src/otlp_grpc_metric_exporter_options.cc @@ -47,6 +47,8 @@ OtlpGrpcMetricExporterOptions::OtlpGrpcMetricExporterOptions() retry_policy_backoff_multiplier = GetOtlpDefaultMetricsRetryBackoffMultiplier(); } +OtlpGrpcMetricExporterOptions::~OtlpGrpcMetricExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_http_exporter_options.cc b/exporters/otlp/src/otlp_http_exporter_options.cc index 8237cffec4..7a75018e13 100644 --- a/exporters/otlp/src/otlp_http_exporter_options.cc +++ b/exporters/otlp/src/otlp_http_exporter_options.cc @@ -43,6 +43,8 @@ OtlpHttpExporterOptions::OtlpHttpExporterOptions() retry_policy_backoff_multiplier(GetOtlpDefaultTracesRetryBackoffMultiplier()) {} +OtlpHttpExporterOptions::~OtlpHttpExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_http_log_record_exporter_options.cc b/exporters/otlp/src/otlp_http_log_record_exporter_options.cc index 208b9ef3c3..212bc3f6cd 100644 --- a/exporters/otlp/src/otlp_http_log_record_exporter_options.cc +++ b/exporters/otlp/src/otlp_http_log_record_exporter_options.cc @@ -43,6 +43,8 @@ OtlpHttpLogRecordExporterOptions::OtlpHttpLogRecordExporterOptions() retry_policy_backoff_multiplier(GetOtlpDefaultLogsRetryBackoffMultiplier()) {} +OtlpHttpLogRecordExporterOptions::~OtlpHttpLogRecordExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_http_metric_exporter_options.cc b/exporters/otlp/src/otlp_http_metric_exporter_options.cc index d4ea6fd212..0ccdc0ab94 100644 --- a/exporters/otlp/src/otlp_http_metric_exporter_options.cc +++ b/exporters/otlp/src/otlp_http_metric_exporter_options.cc @@ -45,6 +45,8 @@ OtlpHttpMetricExporterOptions::OtlpHttpMetricExporterOptions() retry_policy_backoff_multiplier(GetOtlpDefaultMetricsRetryBackoffMultiplier()) {} +OtlpHttpMetricExporterOptions::~OtlpHttpMetricExporterOptions() {} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE From 02faae91c0901114e4829cfc2f6446ebbb4d3c36 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Wed, 9 Jul 2025 13:09:01 -0600 Subject: [PATCH 7/8] address review feedback. Move shared pointers in explicit constructor of HttpSessionData --- .../opentelemetry/exporters/otlp/otlp_http_client.h | 10 ++++------ exporters/otlp/src/otlp_http_client.cc | 5 +++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h index 8014e1e1ab..dff27d92f2 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h @@ -237,12 +237,10 @@ class OtlpHttpClient HttpSessionData() = default; explicit HttpSessionData( - std::shared_ptr input_session, - std::shared_ptr input_handle) - { - session.swap(input_session); - event_handle.swap(input_handle); - } + std::shared_ptr &&input_session, + std::shared_ptr &&input_handle) + : session(std::move(input_session)), event_handle(std::move(input_handle)) + {} }; /** diff --git a/exporters/otlp/src/otlp_http_client.cc b/exporters/otlp/src/otlp_http_client.cc index 478960cecc..77f4df3eed 100644 --- a/exporters/otlp/src/otlp_http_client.cc +++ b/exporters/otlp/src/otlp_http_client.cc @@ -1000,8 +1000,9 @@ OtlpHttpClient::createSession( // Returns the created session data return HttpSessionData{ - session, std::shared_ptr{ - new ResponseHandler(std::move(result_callback), options_.console_debug)}}; + std::move(session), + std::shared_ptr{ + new ResponseHandler(std::move(result_callback), options_.console_debug)}}; } void OtlpHttpClient::addSession(HttpSessionData &&session_data) noexcept From 3fbb2f799915efda99b2fbdbca80329806c88941 Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Wed, 9 Jul 2025 13:09:42 -0600 Subject: [PATCH 8/8] reduce clang-tidy warning limit to current number of warnings --- .github/workflows/clang-tidy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clang-tidy.yaml b/.github/workflows/clang-tidy.yaml index 9e976c4a54..11011be89c 100644 --- a/.github/workflows/clang-tidy.yaml +++ b/.github/workflows/clang-tidy.yaml @@ -17,9 +17,9 @@ jobs: matrix: include: - cmake_options: all-options-abiv1-preview - warning_limit: 62 + warning_limit: 61 - cmake_options: all-options-abiv2-preview - warning_limit: 62 + warning_limit: 61 steps: - name: Harden the runner (Audit all outbound calls) uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2