From 854dbf0a61062dadca8db1809c69d24e3c68c9e1 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Mon, 9 Jun 2025 11:07:37 +0200 Subject: [PATCH 1/3] [CONFIGURATION] File configuration - trace model --- .../batch_span_processor_configuration.h | 39 +++++++++++ .../sdk/configuration/configuration.h | 70 +++++++++++++++++++ .../console_span_exporter_configuration.h | 32 +++++++++ .../otlp_file_span_exporter_configuration.h | 36 ++++++++++ .../otlp_grpc_span_exporter_configuration.h | 43 ++++++++++++ .../otlp_http_span_exporter_configuration.h | 44 ++++++++++++ .../simple_span_processor_configuration.h | 34 +++++++++ .../span_exporter_configuration.h | 28 ++++++++ .../span_exporter_configuration_visitor.h | 37 ++++++++++ .../configuration/span_limits_configuration.h | 29 ++++++++ .../span_processor_configuration.h | 28 ++++++++ .../span_processor_configuration_visitor.h | 31 ++++++++ .../tracer_provider_configuration.h | 33 +++++++++ .../zipkin_span_exporter_configuration.h | 37 ++++++++++ 14 files changed, 521 insertions(+) create mode 100644 sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/tracer_provider_configuration.h create mode 100644 sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h diff --git a/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h new file mode 100644 index 0000000000..7dd563500e --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h @@ -0,0 +1,39 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" +#include "opentelemetry/sdk/configuration/span_processor_configuration.h" +#include "opentelemetry/sdk/configuration/span_processor_configuration_visitor.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: BatchSpanProcessor +class BatchSpanProcessorConfiguration : public SpanProcessorConfiguration +{ +public: + BatchSpanProcessorConfiguration() = default; + ~BatchSpanProcessorConfiguration() override = default; + + void Accept(SpanProcessorConfigurationVisitor *visitor) const override + { + visitor->VisitBatch(this); + } + + size_t schedule_delay{0}; + size_t export_timeout{0}; + size_t max_queue_size{0}; + size_t max_export_batch_size{0}; + std::unique_ptr exporter; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/configuration.h b/sdk/include/opentelemetry/sdk/configuration/configuration.h new file mode 100644 index 0000000000..a633c65516 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/configuration.h @@ -0,0 +1,70 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include + +#include "opentelemetry/sdk/configuration/attribute_limits_configuration.h" +#include "opentelemetry/sdk/configuration/document.h" +#include "opentelemetry/sdk/configuration/logger_provider_configuration.h" +#include "opentelemetry/sdk/configuration/meter_provider_configuration.h" +#include "opentelemetry/sdk/configuration/propagator_configuration.h" +#include "opentelemetry/sdk/configuration/resource_configuration.h" +#include "opentelemetry/sdk/configuration/tracer_provider_configuration.h" +#include "opentelemetry/version.h" + +/* + * General notes about configuration classes. + * + * Each Yaml node that exists in the yaml schema, + * as defined by https://github.com/open-telemetry/opentelemetry-configuration + * is represented by a C++ class. + * Special comments are used to relate the C++ class to + * the Yaml node it represents. + * + * YAML-SCHEMA: points to the relevant file within the + * opentelemetry-configuration repository + * YAML-NODE: points to the relevant node within the file. + * + * For example, + * C++ class opentelemetry::sdk::configuration::Configuration + * corresponds to + * Yaml node OpenTelemetryConfiguration, + * in file + * https://github.com/open-telemetry/opentelemetry-configuration/blob/main/schema/opentelemetry_configuration.json + */ + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/opentelemetry_configuration.json +// YAML-NODE: OpenTelemetryConfiguration +class Configuration +{ +public: + Configuration(std::unique_ptr doc) : m_doc(std::move(doc)) {} + ~Configuration() = default; + + std::string file_format; + bool disabled{false}; + std::string log_level; + + std::unique_ptr attribute_limits; + std::unique_ptr logger_provider; + std::unique_ptr meter_provider; + std::unique_ptr propagator; + std::unique_ptr tracer_provider; + std::unique_ptr resource; + // Ignored: instrumentation + +private: + std::unique_ptr m_doc; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h new file mode 100644 index 0000000000..98735a8fae --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h @@ -0,0 +1,32 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/common.json +// YAML-NODE: Console +class ConsoleSpanExporterConfiguration : public SpanExporterConfiguration +{ +public: + ConsoleSpanExporterConfiguration() = default; + ~ConsoleSpanExporterConfiguration() override = default; + + void Accept(SpanExporterConfigurationVisitor *visitor) const override + { + visitor->VisitConsole(this); + } +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h new file mode 100644 index 0000000000..53a222d4ee --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h @@ -0,0 +1,36 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" +#include "opentelemetry/version.h" + +#include + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/common.json +// YAML-NODE: ExperimentalOtlpFileExporter +class OtlpFileSpanExporterConfiguration : public SpanExporterConfiguration +{ +public: + OtlpFileSpanExporterConfiguration() = default; + ~OtlpFileSpanExporterConfiguration() override = default; + + void Accept(SpanExporterConfigurationVisitor *visitor) const override + { + visitor->VisitOtlpFile(this); + } + + std::string output_stream; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h new file mode 100644 index 0000000000..da7b1afa49 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h @@ -0,0 +1,43 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/sdk/configuration/headers_configuration.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/common.json +// YAML-NODE: OtlpGrpcExporter +class OtlpGrpcSpanExporterConfiguration : public SpanExporterConfiguration +{ +public: + OtlpGrpcSpanExporterConfiguration() = default; + ~OtlpGrpcSpanExporterConfiguration() override = default; + + void Accept(SpanExporterConfigurationVisitor *visitor) const override + { + visitor->VisitOtlpGrpc(this); + } + + std::string endpoint; + std::string certificate_file; + std::string client_key_file; + std::string client_certificate_file; + std::unique_ptr headers; + std::string headers_list; + std::string compression; + size_t timeout{0}; + bool insecure{false}; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h new file mode 100644 index 0000000000..9969017214 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h @@ -0,0 +1,44 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/sdk/configuration/headers_configuration.h" +#include "opentelemetry/sdk/configuration/otlp_http_encoding.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/common.json +// YAML-NODE: OtlpHttpExporter +class OtlpHttpSpanExporterConfiguration : public SpanExporterConfiguration +{ +public: + OtlpHttpSpanExporterConfiguration() = default; + ~OtlpHttpSpanExporterConfiguration() override = default; + + void Accept(SpanExporterConfigurationVisitor *visitor) const override + { + visitor->VisitOtlpHttp(this); + } + + std::string endpoint; + std::string certificate_file; + std::string client_key_file; + std::string client_certificate_file; + std::unique_ptr headers; + std::string headers_list; + std::string compression; + size_t timeout{0}; + enum_otlp_http_encoding encoding{protobuf}; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h new file mode 100644 index 0000000000..91ed84ec02 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h @@ -0,0 +1,34 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/sdk/configuration/span_processor_configuration.h" +#include "opentelemetry/sdk/configuration/span_processor_configuration_visitor.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: SimpleSpanProcessor +class SimpleSpanProcessorConfiguration : public SpanProcessorConfiguration +{ +public: + SimpleSpanProcessorConfiguration() = default; + ~SimpleSpanProcessorConfiguration() override = default; + + void Accept(SpanProcessorConfigurationVisitor *visitor) const override + { + visitor->VisitSimple(this); + } + + std::unique_ptr exporter; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h new file mode 100644 index 0000000000..1231dfc29d --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h @@ -0,0 +1,28 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ +class SpanExporterConfigurationVisitor; + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: SpanExporter +class SpanExporterConfiguration +{ +public: + SpanExporterConfiguration() = default; + virtual ~SpanExporterConfiguration() = default; + + virtual void Accept(SpanExporterConfigurationVisitor *visitor) const = 0; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h new file mode 100644 index 0000000000..719b996462 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h @@ -0,0 +1,37 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +class OtlpHttpSpanExporterConfiguration; +class OtlpGrpcSpanExporterConfiguration; +class OtlpFileSpanExporterConfiguration; +class ConsoleSpanExporterConfiguration; +class ZipkinSpanExporterConfiguration; +class ExtensionSpanExporterConfiguration; + +class SpanExporterConfigurationVisitor +{ +public: + SpanExporterConfigurationVisitor() = default; + virtual ~SpanExporterConfigurationVisitor() = default; + + virtual void VisitOtlpHttp(const OtlpHttpSpanExporterConfiguration *model) = 0; + virtual void VisitOtlpGrpc(const OtlpGrpcSpanExporterConfiguration *model) = 0; + virtual void VisitOtlpFile(const OtlpFileSpanExporterConfiguration *model) = 0; + virtual void VisitConsole(const ConsoleSpanExporterConfiguration *model) = 0; + virtual void VisitZipkin(const ZipkinSpanExporterConfiguration *model) = 0; + virtual void VisitExtension(const ExtensionSpanExporterConfiguration *model) = 0; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h b/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h new file mode 100644 index 0000000000..fa7059e5ae --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h @@ -0,0 +1,29 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: SpanLimits +class SpanLimitsConfiguration +{ +public: + size_t attribute_value_length_limit; + size_t attribute_count_limit; + size_t event_count_limit; + size_t link_count_limit; + size_t event_attribute_count_limit; + size_t link_attribute_count_limit; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h new file mode 100644 index 0000000000..9182a5eb52 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h @@ -0,0 +1,28 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ +class SpanProcessorConfigurationVisitor; + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: SpanProcessor +class SpanProcessorConfiguration +{ +public: + SpanProcessorConfiguration() = default; + virtual ~SpanProcessorConfiguration() = default; + + virtual void Accept(SpanProcessorConfigurationVisitor *visitor) const = 0; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h new file mode 100644 index 0000000000..f905d5b34e --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h @@ -0,0 +1,31 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +class BatchSpanProcessorConfiguration; +class SimpleSpanProcessorConfiguration; +class ExtensionSpanProcessorConfiguration; + +class SpanProcessorConfigurationVisitor +{ +public: + SpanProcessorConfigurationVisitor() = default; + virtual ~SpanProcessorConfigurationVisitor() = default; + + virtual void VisitBatch(const BatchSpanProcessorConfiguration *model) = 0; + virtual void VisitSimple(const SimpleSpanProcessorConfiguration *model) = 0; + virtual void VisitExtension(const ExtensionSpanProcessorConfiguration *model) = 0; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/tracer_provider_configuration.h b/sdk/include/opentelemetry/sdk/configuration/tracer_provider_configuration.h new file mode 100644 index 0000000000..9ef3d75b67 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/tracer_provider_configuration.h @@ -0,0 +1,33 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include +#include + +#include "opentelemetry/sdk/configuration/sampler_configuration.h" +#include "opentelemetry/sdk/configuration/span_limits_configuration.h" +#include "opentelemetry/sdk/configuration/span_processor_configuration.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: TracerProvider +class TracerProviderConfiguration +{ +public: + std::vector> processors; + std::unique_ptr limits; + std::unique_ptr sampler; + // FIXME: tracer_configurator +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h new file mode 100644 index 0000000000..c5946044bb --- /dev/null +++ b/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h @@ -0,0 +1,37 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include + +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" +#include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace configuration +{ + +// YAML-SCHEMA: schema/tracer_provider.json +// YAML-NODE: Zipkin +class ZipkinSpanExporterConfiguration : public SpanExporterConfiguration +{ +public: + ZipkinSpanExporterConfiguration() = default; + ~ZipkinSpanExporterConfiguration() override = default; + + void Accept(SpanExporterConfigurationVisitor *visitor) const override + { + visitor->VisitZipkin(this); + } + + std::string endpoint; + size_t timeout{0}; +}; + +} // namespace configuration +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE From 8e9663d031e39a54c176492fa7717337669177ab Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Wed, 11 Jun 2025 00:23:58 +0200 Subject: [PATCH 2/3] Refresh code from PR #2518, to fix code review comments. --- .../sdk/configuration/batch_span_processor_configuration.h | 2 ++ sdk/include/opentelemetry/sdk/configuration/configuration.h | 5 +++-- .../configuration/otlp_file_span_exporter_configuration.h | 4 ++-- .../configuration/otlp_grpc_span_exporter_configuration.h | 3 +++ .../configuration/otlp_http_span_exporter_configuration.h | 3 +++ .../sdk/configuration/simple_span_processor_configuration.h | 2 ++ 6 files changed, 15 insertions(+), 4 deletions(-) diff --git a/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h index 7dd563500e..7f1eff2d51 100644 --- a/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h @@ -3,6 +3,8 @@ #pragma once +#include + #include "opentelemetry/sdk/configuration/span_exporter_configuration.h" #include "opentelemetry/sdk/configuration/span_processor_configuration.h" #include "opentelemetry/sdk/configuration/span_processor_configuration_visitor.h" diff --git a/sdk/include/opentelemetry/sdk/configuration/configuration.h b/sdk/include/opentelemetry/sdk/configuration/configuration.h index a633c65516..e92d5850e0 100644 --- a/sdk/include/opentelemetry/sdk/configuration/configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/configuration.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include "opentelemetry/sdk/configuration/attribute_limits_configuration.h" @@ -46,7 +47,7 @@ namespace configuration class Configuration { public: - Configuration(std::unique_ptr doc) : m_doc(std::move(doc)) {} + Configuration(std::unique_ptr doc) : doc_(std::move(doc)) {} ~Configuration() = default; std::string file_format; @@ -62,7 +63,7 @@ class Configuration // Ignored: instrumentation private: - std::unique_ptr m_doc; + std::unique_ptr doc_; }; } // namespace configuration diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h index 53a222d4ee..4d19069dc7 100644 --- a/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h @@ -3,12 +3,12 @@ #pragma once +#include + #include "opentelemetry/sdk/configuration/span_exporter_configuration.h" #include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" #include "opentelemetry/version.h" -#include - OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h index da7b1afa49..78afdc5643 100644 --- a/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h @@ -3,6 +3,9 @@ #pragma once +#include +#include + #include "opentelemetry/sdk/configuration/headers_configuration.h" #include "opentelemetry/sdk/configuration/span_exporter_configuration.h" #include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h" diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h index 9969017214..6ec379a8e2 100644 --- a/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h @@ -3,6 +3,9 @@ #pragma once +#include +#include + #include "opentelemetry/sdk/configuration/headers_configuration.h" #include "opentelemetry/sdk/configuration/otlp_http_encoding.h" #include "opentelemetry/sdk/configuration/span_exporter_configuration.h" diff --git a/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h index 91ed84ec02..bb38cdeb97 100644 --- a/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h @@ -3,6 +3,8 @@ #pragma once +#include + #include "opentelemetry/sdk/configuration/span_processor_configuration.h" #include "opentelemetry/sdk/configuration/span_processor_configuration_visitor.h" #include "opentelemetry/version.h" From 195e4255c612cde9ee2d4aac28cb12fde88bd25d Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Fri, 27 Jun 2025 01:04:18 +0200 Subject: [PATCH 3/3] Refresh code from PR #2518, to fix review comments (clang-tidy) --- .../batch_span_processor_configuration.h | 11 ++++------- .../opentelemetry/sdk/configuration/configuration.h | 6 +++++- .../console_span_exporter_configuration.h | 3 --- .../otlp_file_span_exporter_configuration.h | 3 --- .../otlp_grpc_span_exporter_configuration.h | 5 +---- .../otlp_http_span_exporter_configuration.h | 5 +---- .../simple_span_processor_configuration.h | 4 +--- .../sdk/configuration/span_exporter_configuration.h | 8 ++++++-- .../span_exporter_configuration_visitor.h | 7 ++++++- .../sdk/configuration/span_limits_configuration.h | 12 ++++++------ .../sdk/configuration/span_processor_configuration.h | 8 ++++++-- .../span_processor_configuration_visitor.h | 7 ++++++- .../zipkin_span_exporter_configuration.h | 5 +---- 13 files changed, 43 insertions(+), 41 deletions(-) diff --git a/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h index 7f1eff2d51..1230f616a2 100644 --- a/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/batch_span_processor_configuration.h @@ -21,18 +21,15 @@ namespace configuration class BatchSpanProcessorConfiguration : public SpanProcessorConfiguration { public: - BatchSpanProcessorConfiguration() = default; - ~BatchSpanProcessorConfiguration() override = default; - void Accept(SpanProcessorConfigurationVisitor *visitor) const override { visitor->VisitBatch(this); } - size_t schedule_delay{0}; - size_t export_timeout{0}; - size_t max_queue_size{0}; - size_t max_export_batch_size{0}; + std::size_t schedule_delay{0}; + std::size_t export_timeout{0}; + std::size_t max_queue_size{0}; + std::size_t max_export_batch_size{0}; std::unique_ptr exporter; }; diff --git a/sdk/include/opentelemetry/sdk/configuration/configuration.h b/sdk/include/opentelemetry/sdk/configuration/configuration.h index e92d5850e0..d24cffe8bf 100644 --- a/sdk/include/opentelemetry/sdk/configuration/configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/configuration.h @@ -48,7 +48,11 @@ class Configuration { public: Configuration(std::unique_ptr doc) : doc_(std::move(doc)) {} - ~Configuration() = default; + Configuration(Configuration &&) = delete; + Configuration(const Configuration &) = delete; + Configuration &operator=(Configuration &&) = delete; + Configuration &operator=(const Configuration &other) = delete; + ~Configuration() = default; std::string file_format; bool disabled{false}; diff --git a/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h index 98735a8fae..a1750d0f2c 100644 --- a/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/console_span_exporter_configuration.h @@ -18,9 +18,6 @@ namespace configuration class ConsoleSpanExporterConfiguration : public SpanExporterConfiguration { public: - ConsoleSpanExporterConfiguration() = default; - ~ConsoleSpanExporterConfiguration() override = default; - void Accept(SpanExporterConfigurationVisitor *visitor) const override { visitor->VisitConsole(this); diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h index 4d19069dc7..4742d8124c 100644 --- a/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_file_span_exporter_configuration.h @@ -20,9 +20,6 @@ namespace configuration class OtlpFileSpanExporterConfiguration : public SpanExporterConfiguration { public: - OtlpFileSpanExporterConfiguration() = default; - ~OtlpFileSpanExporterConfiguration() override = default; - void Accept(SpanExporterConfigurationVisitor *visitor) const override { visitor->VisitOtlpFile(this); diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h index 78afdc5643..efbf6011b2 100644 --- a/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_grpc_span_exporter_configuration.h @@ -22,9 +22,6 @@ namespace configuration class OtlpGrpcSpanExporterConfiguration : public SpanExporterConfiguration { public: - OtlpGrpcSpanExporterConfiguration() = default; - ~OtlpGrpcSpanExporterConfiguration() override = default; - void Accept(SpanExporterConfigurationVisitor *visitor) const override { visitor->VisitOtlpGrpc(this); @@ -37,7 +34,7 @@ class OtlpGrpcSpanExporterConfiguration : public SpanExporterConfiguration std::unique_ptr headers; std::string headers_list; std::string compression; - size_t timeout{0}; + std::size_t timeout{0}; bool insecure{false}; }; diff --git a/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h index 6ec379a8e2..394a6e75dd 100644 --- a/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/otlp_http_span_exporter_configuration.h @@ -23,9 +23,6 @@ namespace configuration class OtlpHttpSpanExporterConfiguration : public SpanExporterConfiguration { public: - OtlpHttpSpanExporterConfiguration() = default; - ~OtlpHttpSpanExporterConfiguration() override = default; - void Accept(SpanExporterConfigurationVisitor *visitor) const override { visitor->VisitOtlpHttp(this); @@ -38,7 +35,7 @@ class OtlpHttpSpanExporterConfiguration : public SpanExporterConfiguration std::unique_ptr headers; std::string headers_list; std::string compression; - size_t timeout{0}; + std::size_t timeout{0}; enum_otlp_http_encoding encoding{protobuf}; }; diff --git a/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h index bb38cdeb97..48eabe20da 100644 --- a/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/simple_span_processor_configuration.h @@ -5,6 +5,7 @@ #include +#include "opentelemetry/sdk/configuration/span_exporter_configuration.h" #include "opentelemetry/sdk/configuration/span_processor_configuration.h" #include "opentelemetry/sdk/configuration/span_processor_configuration_visitor.h" #include "opentelemetry/version.h" @@ -20,9 +21,6 @@ namespace configuration class SimpleSpanProcessorConfiguration : public SpanProcessorConfiguration { public: - SimpleSpanProcessorConfiguration() = default; - ~SimpleSpanProcessorConfiguration() override = default; - void Accept(SpanProcessorConfigurationVisitor *visitor) const override { visitor->VisitSimple(this); diff --git a/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h index 1231dfc29d..30f75dba9f 100644 --- a/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration.h @@ -17,8 +17,12 @@ class SpanExporterConfigurationVisitor; class SpanExporterConfiguration { public: - SpanExporterConfiguration() = default; - virtual ~SpanExporterConfiguration() = default; + SpanExporterConfiguration() = default; + SpanExporterConfiguration(SpanExporterConfiguration &&) = default; + SpanExporterConfiguration(const SpanExporterConfiguration &) = default; + SpanExporterConfiguration &operator=(SpanExporterConfiguration &&) = default; + SpanExporterConfiguration &operator=(const SpanExporterConfiguration &other) = default; + virtual ~SpanExporterConfiguration() = default; virtual void Accept(SpanExporterConfigurationVisitor *visitor) const = 0; }; diff --git a/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h index 719b996462..685584220a 100644 --- a/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h +++ b/sdk/include/opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h @@ -21,7 +21,12 @@ class ExtensionSpanExporterConfiguration; class SpanExporterConfigurationVisitor { public: - SpanExporterConfigurationVisitor() = default; + SpanExporterConfigurationVisitor() = default; + SpanExporterConfigurationVisitor(SpanExporterConfigurationVisitor &&) = default; + SpanExporterConfigurationVisitor(const SpanExporterConfigurationVisitor &) = default; + SpanExporterConfigurationVisitor &operator=(SpanExporterConfigurationVisitor &&) = default; + SpanExporterConfigurationVisitor &operator=(const SpanExporterConfigurationVisitor &other) = + default; virtual ~SpanExporterConfigurationVisitor() = default; virtual void VisitOtlpHttp(const OtlpHttpSpanExporterConfiguration *model) = 0; diff --git a/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h b/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h index fa7059e5ae..a4624bb1a5 100644 --- a/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/span_limits_configuration.h @@ -16,12 +16,12 @@ namespace configuration class SpanLimitsConfiguration { public: - size_t attribute_value_length_limit; - size_t attribute_count_limit; - size_t event_count_limit; - size_t link_count_limit; - size_t event_attribute_count_limit; - size_t link_attribute_count_limit; + std::size_t attribute_value_length_limit; + std::size_t attribute_count_limit; + std::size_t event_count_limit; + std::size_t link_count_limit; + std::size_t event_attribute_count_limit; + std::size_t link_attribute_count_limit; }; } // namespace configuration diff --git a/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h index 9182a5eb52..78d927907e 100644 --- a/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration.h @@ -17,8 +17,12 @@ class SpanProcessorConfigurationVisitor; class SpanProcessorConfiguration { public: - SpanProcessorConfiguration() = default; - virtual ~SpanProcessorConfiguration() = default; + SpanProcessorConfiguration() = default; + SpanProcessorConfiguration(SpanProcessorConfiguration &&) = default; + SpanProcessorConfiguration(const SpanProcessorConfiguration &) = default; + SpanProcessorConfiguration &operator=(SpanProcessorConfiguration &&) = default; + SpanProcessorConfiguration &operator=(const SpanProcessorConfiguration &other) = default; + virtual ~SpanProcessorConfiguration() = default; virtual void Accept(SpanProcessorConfigurationVisitor *visitor) const = 0; }; diff --git a/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h index f905d5b34e..c85312f597 100644 --- a/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h +++ b/sdk/include/opentelemetry/sdk/configuration/span_processor_configuration_visitor.h @@ -18,7 +18,12 @@ class ExtensionSpanProcessorConfiguration; class SpanProcessorConfigurationVisitor { public: - SpanProcessorConfigurationVisitor() = default; + SpanProcessorConfigurationVisitor() = default; + SpanProcessorConfigurationVisitor(SpanProcessorConfigurationVisitor &&) = default; + SpanProcessorConfigurationVisitor(const SpanProcessorConfigurationVisitor &) = default; + SpanProcessorConfigurationVisitor &operator=(SpanProcessorConfigurationVisitor &&) = default; + SpanProcessorConfigurationVisitor &operator=(const SpanProcessorConfigurationVisitor &other) = + default; virtual ~SpanProcessorConfigurationVisitor() = default; virtual void VisitBatch(const BatchSpanProcessorConfiguration *model) = 0; diff --git a/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h b/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h index c5946044bb..fc64f30841 100644 --- a/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h +++ b/sdk/include/opentelemetry/sdk/configuration/zipkin_span_exporter_configuration.h @@ -20,16 +20,13 @@ namespace configuration class ZipkinSpanExporterConfiguration : public SpanExporterConfiguration { public: - ZipkinSpanExporterConfiguration() = default; - ~ZipkinSpanExporterConfiguration() override = default; - void Accept(SpanExporterConfigurationVisitor *visitor) const override { visitor->VisitZipkin(this); } std::string endpoint; - size_t timeout{0}; + std::size_t timeout{0}; }; } // namespace configuration