From 43a1a61cdccbc3299841ae5b2ee1458bf3bcdbf6 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Mon, 27 Mar 2023 15:14:27 -0700 Subject: [PATCH] [Metrics SDK] Implement Forceflush for Periodic Metric Reader (#2064) --- .../opentelemetry/common/kv_properties.h | 3 +- api/include/opentelemetry/common/macros.h | 4 +- .../opentelemetry/common/spin_lock_mutex.h | 11 ++- .../opentelemetry/common/string_util.h | 1 + api/include/opentelemetry/common/timestamp.h | 1 - api/include/opentelemetry/logs/event_logger.h | 7 +- .../logs/event_logger_provider.h | 9 +- api/include/opentelemetry/logs/log_record.h | 11 ++- api/include/opentelemetry/logs/logger.h | 20 ++-- .../opentelemetry/logs/logger_provider.h | 2 + .../opentelemetry/logs/logger_type_traits.h | 3 - api/include/opentelemetry/logs/noop.h | 3 +- .../opentelemetry/metrics/async_instruments.h | 1 + api/include/opentelemetry/metrics/meter.h | 14 ++- .../opentelemetry/metrics/meter_provider.h | 5 +- .../opentelemetry/metrics/observer_result.h | 2 + api/include/opentelemetry/metrics/provider.h | 1 - .../opentelemetry/nostd/detail/functional.h | 7 +- .../opentelemetry/nostd/detail/invoke.h | 32 +++--- .../opentelemetry/nostd/detail/trait.h | 6 +- .../opentelemetry/nostd/function_ref.h | 10 +- .../plugin/detail/dynamic_load_unix.h | 1 - .../plugin/detail/dynamic_load_windows.h | 6 +- .../plugin/detail/tracer_handle.h | 6 +- .../opentelemetry/plugin/detail/utility.h | 3 + api/include/opentelemetry/std/string_view.h | 6 -- api/include/opentelemetry/std/variant.h | 9 +- api/include/opentelemetry/trace/scope.h | 4 +- api/include/opentelemetry/trace/span.h | 12 +-- .../opentelemetry/trace/span_context.h | 2 +- .../opentelemetry/trace/span_metadata.h | 1 + .../opentelemetry/trace/span_startoptions.h | 1 + api/include/opentelemetry/trace/trace_flags.h | 1 - api/include/opentelemetry/trace/trace_state.h | 6 +- api/include/opentelemetry/trace/tracer.h | 3 +- .../opentelemetry/trace/tracer_provider.h | 5 +- api/test/logs/logger_test.cc | 1 + api/test/nostd/shared_ptr_test.cc | 2 +- api/test/nostd/unique_ptr_test.cc | 2 +- .../trace/propagation/b3_propagation_test.cc | 4 +- api/test/trace/trace_state_test.cc | 2 +- examples/batch/main.cc | 5 + examples/etw_threads/CMakeLists.txt | 8 +- examples/grpc/client.cc | 14 +-- examples/grpc/server.cc | 10 +- examples/grpc/tracer_common.h | 3 + examples/http/tracer_common.h | 3 + examples/jaeger/main.cc | 1 + examples/logs_simple/main.cc | 2 + examples/multi_processor/main.cc | 3 + examples/multithreaded/main.cc | 2 + examples/otlp/grpc_log_main.cc | 3 + examples/otlp/grpc_main.cc | 3 + examples/otlp/grpc_metric_main.cc | 2 + examples/otlp/http_log_main.cc | 3 + examples/otlp/http_main.cc | 2 + examples/simple/main.cc | 3 + examples/zipkin/main.cc | 2 + .../elasticsearch/es_log_record_exporter.h | 25 +++-- .../elasticsearch/es_log_recordable.h | 2 - .../src/es_log_record_exporter.cc | 8 +- .../opentelemetry/exporters/etw/etw_fields.h | 2 - .../opentelemetry/exporters/etw/etw_tracer.h | 17 ++-- .../opentelemetry/exporters/etw/utils.h | 1 - exporters/etw/test/etw_perf_test.cc | 4 +- .../exporters/jaeger/recordable.h | 3 +- exporters/jaeger/src/TUDPTransport.cc | 2 +- exporters/jaeger/src/recordable.cc | 2 + exporters/jaeger/test/jaeger_exporter_test.cc | 10 +- .../jaeger/test/jaeger_recordable_test.cc | 9 +- .../exporters/ostream/common_utils.h | 6 +- .../exporters/ostream/log_record_exporter.h | 5 +- .../exporters/ostream/metric_exporter.h | 1 + .../exporters/ostream/span_exporter_factory.h | 2 +- exporters/ostream/src/log_record_exporter.cc | 1 - exporters/ostream/src/metric_exporter.cc | 8 +- exporters/ostream/test/ostream_metric_test.cc | 8 +- exporters/otlp/CMakeLists.txt | 2 + .../exporters/otlp/otlp_environment.h | 5 - .../exporters/otlp/otlp_grpc_client.h | 4 +- .../exporters/otlp/otlp_grpc_exporter.h | 1 + .../otlp/otlp_grpc_exporter_factory.h | 13 ++- .../otlp/otlp_grpc_exporter_options.h | 3 +- .../otlp/otlp_grpc_log_record_exporter.h | 1 + .../otlp_grpc_log_record_exporter_factory.h | 15 ++- .../otlp/otlp_grpc_metric_exporter.h | 1 + .../otlp/otlp_grpc_metric_exporter_factory.h | 14 ++- .../otlp/otlp_grpc_metric_exporter_options.h | 3 +- .../exporters/otlp/otlp_grpc_utils.h | 2 +- .../opentelemetry/exporters/otlp/otlp_http.h | 6 +- .../exporters/otlp/otlp_http_client.h | 1 + .../exporters/otlp/otlp_http_exporter.h | 17 ++-- .../otlp/otlp_http_exporter_factory.h | 13 ++- .../otlp/otlp_http_exporter_options.h | 2 +- .../otlp/otlp_http_log_record_exporter.h | 10 +- .../otlp_http_log_record_exporter_factory.h | 15 ++- .../otlp_http_log_record_exporter_options.h | 2 +- .../otlp/otlp_http_metric_exporter.h | 6 +- .../otlp/otlp_http_metric_exporter_factory.h | 15 ++- .../otlp/otlp_http_metric_exporter_options.h | 2 +- .../exporters/otlp/otlp_log_recordable.h | 11 ++- .../exporters/otlp/otlp_metric_utils.h | 1 + .../otlp/otlp_populate_attribute_utils.h | 9 +- .../exporters/otlp/otlp_recordable_utils.h | 21 ++-- exporters/otlp/src/otlp_environment.cc | 3 +- exporters/otlp/src/otlp_grpc_client.cc | 2 +- .../otlp/src/otlp_grpc_log_record_exporter.cc | 3 - exporters/otlp/src/otlp_http_exporter.cc | 1 + .../otlp/src/otlp_http_metric_exporter.cc | 1 + exporters/otlp/src/otlp_log_recordable.cc | 10 +- .../otlp/src/otlp_populate_attribute_utils.cc | 1 + exporters/otlp/src/otlp_recordable.cc | 2 + exporters/otlp/src/otlp_recordable_utils.cc | 1 + .../test/otlp_grpc_exporter_factory_test.cc | 1 + ...p_grpc_log_record_exporter_factory_test.cc | 1 + .../otlp_grpc_log_record_exporter_test.cc | 1 + .../otlp_grpc_metric_exporter_factory_test.cc | 2 + .../test/otlp_http_exporter_factory_test.cc | 1 + .../otlp/test/otlp_http_exporter_test.cc | 2 + .../otlp_http_log_record_exporter_test.cc | 4 +- .../otlp_http_metric_exporter_factory_test.cc | 1 + .../test/otlp_http_metric_exporter_test.cc | 13 +-- exporters/otlp/test/otlp_recordable_test.cc | 7 +- exporters/zipkin/src/recordable.cc | 2 + exporters/zipkin/test/zipkin_exporter_test.cc | 1 + .../zipkin/test/zipkin_recordable_test.cc | 2 +- .../ext/http/client/curl/http_client_curl.h | 27 +++-- .../http/client/curl/http_operation_curl.h | 37 +++++-- .../ext/http/server/socket_tools.h | 40 ++++++-- .../opentelemetry/ext/zpages/tracez_data.h | 1 - ext/test/w3c_tracecontext_test/main.cc | 1 + opentracing-shim/test/shim_utils_test.cc | 6 +- .../sdk/common/empty_attributes.h | 1 - .../sdk/common/global_log_handler.h | 1 - .../instrumentation_scope.h | 2 +- .../logs/batch_log_record_processor_factory.h | 8 +- .../sdk/logs/event_logger_provider.h | 4 +- .../sdk/logs/event_logger_provider_factory.h | 10 +- sdk/include/opentelemetry/sdk/logs/exporter.h | 7 +- sdk/include/opentelemetry/sdk/logs/logger.h | 1 - .../opentelemetry/sdk/logs/logger_context.h | 6 +- .../sdk/logs/logger_context_factory.h | 12 ++- .../sdk/logs/logger_provider_factory.h | 20 ++-- .../logs/multi_log_record_processor_factory.h | 4 +- .../opentelemetry/sdk/logs/multi_recordable.h | 4 +- .../opentelemetry/sdk/logs/processor.h | 6 +- .../sdk/logs/simple_log_record_processor.h | 1 - .../sdk/metrics/aggregation/aggregation.h | 5 +- .../metrics/aggregation/default_aggregation.h | 4 +- .../metrics/aggregation/drop_aggregation.h | 6 +- .../aggregation/histogram_aggregation.h | 6 +- .../aggregation/lastvalue_aggregation.h | 2 - .../sdk/metrics/aggregation/sum_aggregation.h | 4 +- .../sdk/metrics/data/point_data.h | 16 +-- .../sdk/metrics/exemplar/filter.h | 15 ++- .../exemplar/filtered_exemplar_reservoir.h | 4 +- .../sdk/metrics/exemplar/reservoir.h | 18 ++++ .../sdk/metrics/export/metric_producer.h | 10 +- .../export/periodic_exporting_metric_reader.h | 8 +- .../sdk/metrics/state/async_metric_storage.h | 4 +- .../sdk/metrics/state/metric_collector.h | 4 +- .../sdk/metrics/state/metric_storage.h | 16 ++- .../sdk/metrics/state/multi_metric_storage.h | 7 +- .../sdk/metrics/state/sync_metric_storage.h | 1 + .../metrics/state/temporal_metric_storage.h | 14 ++- .../opentelemetry/sdk/resource/resource.h | 7 -- .../sdk/trace/batch_span_processor.h | 7 +- .../sdk/trace/batch_span_processor_factory.h | 9 +- .../sdk/trace/batch_span_processor_options.h | 4 +- .../opentelemetry/sdk/trace/exporter.h | 8 +- .../sdk/trace/multi_recordable.h | 5 +- .../sdk/trace/multi_span_processor.h | 2 - .../opentelemetry/sdk/trace/processor.h | 10 +- .../sdk/trace/random_id_generator.h | 1 + .../sdk/trace/random_id_generator_factory.h | 4 +- .../opentelemetry/sdk/trace/recordable.h | 23 +++-- sdk/include/opentelemetry/sdk/trace/sampler.h | 10 +- .../sdk/trace/simple_processor.h | 1 + .../sdk/trace/simple_processor_factory.h | 6 +- .../opentelemetry/sdk/trace/span_data.h | 18 ++-- sdk/include/opentelemetry/sdk/trace/tracer.h | 4 +- .../opentelemetry/sdk/trace/tracer_context.h | 8 +- .../sdk/trace/tracer_context_factory.h | 18 +++- .../opentelemetry/sdk/trace/tracer_provider.h | 13 +-- .../sdk/trace/tracer_provider_factory.h | 19 +++- sdk/src/common/global_log_handler.cc | 1 + sdk/src/common/random.cc | 1 + sdk/src/common/random.h | 4 +- sdk/src/logs/batch_log_record_processor.cc | 5 +- sdk/src/logs/logger.cc | 1 + sdk/src/logs/logger_context_factory.cc | 6 +- sdk/src/logs/multi_recordable.cc | 5 +- sdk/src/logs/read_write_log_record.cc | 10 +- sdk/src/logs/simple_log_record_processor.cc | 2 + .../aggregation/histogram_aggregation.cc | 1 + .../periodic_exporting_metric_reader.cc | 99 +++++++++++++++++-- sdk/src/metrics/meter_context.cc | 2 + .../metrics/state/temporal_metric_storage.cc | 13 +-- sdk/src/resource/resource.cc | 7 +- sdk/src/resource/resource_detector.cc | 2 + sdk/src/trace/batch_span_processor.cc | 5 +- sdk/src/trace/span.cc | 1 + sdk/src/trace/tracer.cc | 17 ++-- sdk/src/trace/tracer_provider.cc | 1 + sdk/src/trace/tracer_provider_factory.cc | 1 + .../fast_random_number_generator_test.cc | 1 + .../instrumentationscope_test.cc | 8 +- sdk/test/logs/logger_sdk_test.cc | 4 + sdk/test/metrics/aggregation_test.cc | 1 + .../metrics/attributes_hashmap_benchmark.cc | 2 + .../exemplar/always_sample_filter_test.cc | 2 + .../exemplar/never_sample_filter_test.cc | 1 + .../exemplar/with_trace_sample_filter_test.cc | 1 + .../periodic_exporting_metric_reader_test.cc | 1 + .../sync_metric_storage_counter_test.cc | 4 +- .../sync_metric_storage_histogram_test.cc | 4 +- sdk/test/resource/resource_test.cc | 1 + sdk/test/trace/batch_span_processor_test.cc | 3 + sdk/test/trace/parent_sampler_test.cc | 2 +- 219 files changed, 972 insertions(+), 439 deletions(-) diff --git a/api/include/opentelemetry/common/kv_properties.h b/api/include/opentelemetry/common/kv_properties.h index 96442021b5..b5accab403 100644 --- a/api/include/opentelemetry/common/kv_properties.h +++ b/api/include/opentelemetry/common/kv_properties.h @@ -6,7 +6,6 @@ #include "opentelemetry/common/key_value_iterable_view.h" #include "opentelemetry/common/string_util.h" #include "opentelemetry/nostd/function_ref.h" -#include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/unique_ptr.h" #include "opentelemetry/version.h" @@ -159,7 +158,7 @@ class KeyValueProperties } // Move contructor and assignment operator - Entry(Entry &&other) = default; + Entry(Entry &&other) = default; Entry &operator=(Entry &&other) = default; // Creates an Entry for a given key-value pair. diff --git a/api/include/opentelemetry/common/macros.h b/api/include/opentelemetry/common/macros.h index 323e5cdc04..c98093c7f9 100644 --- a/api/include/opentelemetry/common/macros.h +++ b/api/include/opentelemetry/common/macros.h @@ -7,9 +7,7 @@ // GCC 9 has likely attribute but do not support declare it at the beginning of statement # if defined(__has_cpp_attribute) && (defined(__clang__) || !defined(__GNUC__) || __GNUC__ > 9) # if __has_cpp_attribute(likely) -# define OPENTELEMETRY_LIKELY_IF(...) \ - if (__VA_ARGS__) \ - [[likely]] +# define OPENTELEMETRY_LIKELY_IF(...) if (__VA_ARGS__) [[likely]] # endif # endif #endif diff --git a/api/include/opentelemetry/common/spin_lock_mutex.h b/api/include/opentelemetry/common/spin_lock_mutex.h index 1877c8eb40..94bee3a2f8 100644 --- a/api/include/opentelemetry/common/spin_lock_mutex.h +++ b/api/include/opentelemetry/common/spin_lock_mutex.h @@ -56,9 +56,9 @@ class SpinLockMutex { public: SpinLockMutex() noexcept {} - ~SpinLockMutex() noexcept = default; - SpinLockMutex(const SpinLockMutex &) = delete; - SpinLockMutex &operator=(const SpinLockMutex &) = delete; + ~SpinLockMutex() noexcept = default; + SpinLockMutex(const SpinLockMutex &) = delete; + SpinLockMutex &operator=(const SpinLockMutex &) = delete; SpinLockMutex &operator=(const SpinLockMutex &) volatile = delete; static inline void fast_yield() noexcept @@ -125,7 +125,10 @@ class SpinLockMutex return; } /** Releases the lock held by the execution agent. Throws no exceptions. */ - void unlock() noexcept { flag_.store(false, std::memory_order_release); } + void unlock() noexcept + { + flag_.store(false, std::memory_order_release); + } private: std::atomic flag_{false}; diff --git a/api/include/opentelemetry/common/string_util.h b/api/include/opentelemetry/common/string_util.h index 6dce79f1ba..a7070a0acd 100644 --- a/api/include/opentelemetry/common/string_util.h +++ b/api/include/opentelemetry/common/string_util.h @@ -4,6 +4,7 @@ #pragma once #include "opentelemetry/nostd/string_view.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace common diff --git a/api/include/opentelemetry/common/timestamp.h b/api/include/opentelemetry/common/timestamp.h index da8765b9bc..14aa457b5b 100644 --- a/api/include/opentelemetry/common/timestamp.h +++ b/api/include/opentelemetry/common/timestamp.h @@ -3,7 +3,6 @@ #pragma once -#include #include #include diff --git a/api/include/opentelemetry/logs/event_logger.h b/api/include/opentelemetry/logs/event_logger.h index 654c6f6c69..c27b9237e6 100644 --- a/api/include/opentelemetry/logs/event_logger.h +++ b/api/include/opentelemetry/logs/event_logger.h @@ -4,15 +4,10 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW -# include -# include -# include - # include "opentelemetry/common/macros.h" # include "opentelemetry/logs/log_record.h" # include "opentelemetry/logs/logger.h" # include "opentelemetry/logs/logger_type_traits.h" -# include "opentelemetry/logs/severity.h" # include "opentelemetry/nostd/shared_ptr.h" # include "opentelemetry/nostd/string_view.h" # include "opentelemetry/nostd/unique_ptr.h" @@ -63,7 +58,7 @@ class EventLogger * span> -> attributes(return type of MakeAttributes) */ template - void EmitEvent(nostd::string_view event_name, ArgumentType &&... args) + void EmitEvent(nostd::string_view event_name, ArgumentType &&...args) { nostd::shared_ptr delegate_logger = GetDelegateLogger(); if (!delegate_logger) diff --git a/api/include/opentelemetry/logs/event_logger_provider.h b/api/include/opentelemetry/logs/event_logger_provider.h index 8692222c10..06170dccab 100644 --- a/api/include/opentelemetry/logs/event_logger_provider.h +++ b/api/include/opentelemetry/logs/event_logger_provider.h @@ -4,16 +4,17 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW -# include "opentelemetry/common/key_value_iterable.h" -# include "opentelemetry/common/key_value_iterable_view.h" -# include "opentelemetry/logs/event_logger.h" -# include "opentelemetry/logs/logger.h" # include "opentelemetry/nostd/shared_ptr.h" # include "opentelemetry/nostd/string_view.h" +# include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace logs { + +class EventLogger; +class Logger; + /** * Creates new EventLogger instances. */ diff --git a/api/include/opentelemetry/logs/log_record.h b/api/include/opentelemetry/logs/log_record.h index 7fb51c2d99..0927bee877 100644 --- a/api/include/opentelemetry/logs/log_record.h +++ b/api/include/opentelemetry/logs/log_record.h @@ -5,15 +5,18 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/common/attribute_value.h" -# include "opentelemetry/common/key_value_iterable.h" # include "opentelemetry/common/timestamp.h" # include "opentelemetry/logs/severity.h" -# include "opentelemetry/trace/span_id.h" -# include "opentelemetry/trace/trace_flags.h" -# include "opentelemetry/trace/trace_id.h" # include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace trace +{ +class SpanId; +class TraceId; +class TraceFlags; +} // namespace trace + namespace logs { /** diff --git a/api/include/opentelemetry/logs/logger.h b/api/include/opentelemetry/logs/logger.h index 23aea11143..f6b2034249 100644 --- a/api/include/opentelemetry/logs/logger.h +++ b/api/include/opentelemetry/logs/logger.h @@ -5,7 +5,6 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/common/key_value_iterable.h" -# include "opentelemetry/logs/log_record.h" # include "opentelemetry/logs/logger_type_traits.h" # include "opentelemetry/logs/severity.h" # include "opentelemetry/nostd/string_view.h" @@ -15,6 +14,9 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace logs { + +class LogRecord; + /** * Handles log record creation. **/ @@ -59,7 +61,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void EmitLogRecord(nostd::unique_ptr &&log_record, ArgumentType &&... args) + void EmitLogRecord(nostd::unique_ptr &&log_record, ArgumentType &&...args) { if (!log_record) { @@ -91,7 +93,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void EmitLogRecord(ArgumentType &&... args) + void EmitLogRecord(ArgumentType &&...args) { nostd::unique_ptr log_record = CreateLogRecord(); if (!log_record) @@ -118,7 +120,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void Trace(ArgumentType &&... args) noexcept + void Trace(ArgumentType &&...args) noexcept { static_assert( !detail::LogRecordHasType::type...>::value, @@ -142,7 +144,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void Debug(ArgumentType &&... args) noexcept + void Debug(ArgumentType &&...args) noexcept { static_assert( !detail::LogRecordHasType::type...>::value, @@ -166,7 +168,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void Info(ArgumentType &&... args) noexcept + void Info(ArgumentType &&...args) noexcept { static_assert( !detail::LogRecordHasType::type...>::value, @@ -190,7 +192,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void Warn(ArgumentType &&... args) noexcept + void Warn(ArgumentType &&...args) noexcept { static_assert( !detail::LogRecordHasType::type...>::value, @@ -214,7 +216,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void Error(ArgumentType &&... args) noexcept + void Error(ArgumentType &&...args) noexcept { static_assert( !detail::LogRecordHasType::type...>::value, @@ -238,7 +240,7 @@ class Logger * span> -> attributes(return type of MakeAttributes) */ template - void Fatal(ArgumentType &&... args) noexcept + void Fatal(ArgumentType &&...args) noexcept { static_assert( !detail::LogRecordHasType::type...>::value, diff --git a/api/include/opentelemetry/logs/logger_provider.h b/api/include/opentelemetry/logs/logger_provider.h index 7979ab202a..d10d1df2e3 100644 --- a/api/include/opentelemetry/logs/logger_provider.h +++ b/api/include/opentelemetry/logs/logger_provider.h @@ -9,7 +9,9 @@ # include "opentelemetry/common/key_value_iterable_view.h" # include "opentelemetry/logs/logger.h" # include "opentelemetry/nostd/shared_ptr.h" +# include "opentelemetry/nostd/span.h" # include "opentelemetry/nostd/string_view.h" +# include "opentelemetry/nostd/type_traits.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace logs diff --git a/api/include/opentelemetry/logs/logger_type_traits.h b/api/include/opentelemetry/logs/logger_type_traits.h index 8736c03f7f..ca3b823b83 100644 --- a/api/include/opentelemetry/logs/logger_type_traits.h +++ b/api/include/opentelemetry/logs/logger_type_traits.h @@ -12,11 +12,8 @@ # include "opentelemetry/common/timestamp.h" # include "opentelemetry/logs/log_record.h" # include "opentelemetry/logs/severity.h" -# include "opentelemetry/nostd/shared_ptr.h" -# include "opentelemetry/nostd/span.h" # include "opentelemetry/nostd/string_view.h" # include "opentelemetry/nostd/type_traits.h" -# include "opentelemetry/nostd/unique_ptr.h" # include "opentelemetry/trace/span_context.h" # include "opentelemetry/trace/span_id.h" # include "opentelemetry/trace/trace_flags.h" diff --git a/api/include/opentelemetry/logs/noop.h b/api/include/opentelemetry/logs/noop.h index 5061003274..537f9ff52d 100644 --- a/api/include/opentelemetry/logs/noop.h +++ b/api/include/opentelemetry/logs/noop.h @@ -15,6 +15,7 @@ # include "opentelemetry/common/key_value_iterable.h" # include "opentelemetry/common/timestamp.h" # include "opentelemetry/context/runtime_context.h" +# include "opentelemetry/logs/event_logger.h" # include "opentelemetry/logs/event_logger_provider.h" # include "opentelemetry/logs/logger.h" # include "opentelemetry/logs/logger_provider.h" @@ -28,8 +29,6 @@ # include "opentelemetry/trace/trace_id.h" # include "opentelemetry/version.h" -# include "opentelemetry/version.h" - OPENTELEMETRY_BEGIN_NAMESPACE namespace logs { diff --git a/api/include/opentelemetry/metrics/async_instruments.h b/api/include/opentelemetry/metrics/async_instruments.h index 6e6d5012c4..f73eb2f51b 100644 --- a/api/include/opentelemetry/metrics/async_instruments.h +++ b/api/include/opentelemetry/metrics/async_instruments.h @@ -4,6 +4,7 @@ #pragma once #include "opentelemetry/metrics/observer_result.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace metrics diff --git a/api/include/opentelemetry/metrics/meter.h b/api/include/opentelemetry/metrics/meter.h index 877453884a..f8a28bfb57 100644 --- a/api/include/opentelemetry/metrics/meter.h +++ b/api/include/opentelemetry/metrics/meter.h @@ -3,10 +3,7 @@ #pragma once -#include "opentelemetry/metrics/async_instruments.h" -#include "opentelemetry/metrics/sync_instruments.h" #include "opentelemetry/nostd/shared_ptr.h" -#include "opentelemetry/nostd/span.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/unique_ptr.h" #include "opentelemetry/version.h" @@ -14,6 +11,17 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace metrics { +template +class Counter; + +template +class Histogram; + +template +class UpDownCounter; + +class ObservableInstrument; + /** * Handles instrument creation and provides a facility for batch recording. * diff --git a/api/include/opentelemetry/metrics/meter_provider.h b/api/include/opentelemetry/metrics/meter_provider.h index 4c3306ebf6..654c4022ea 100644 --- a/api/include/opentelemetry/metrics/meter_provider.h +++ b/api/include/opentelemetry/metrics/meter_provider.h @@ -3,13 +3,16 @@ #pragma once -#include "opentelemetry/metrics/meter.h" #include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/nostd/string_view.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace metrics { + +class Meter; + /** * Creates new Meter instances. */ diff --git a/api/include/opentelemetry/metrics/observer_result.h b/api/include/opentelemetry/metrics/observer_result.h index 88cae28618..56c42bc20e 100644 --- a/api/include/opentelemetry/metrics/observer_result.h +++ b/api/include/opentelemetry/metrics/observer_result.h @@ -9,6 +9,8 @@ #include "opentelemetry/nostd/span.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/type_traits.h" +#include "opentelemetry/nostd/variant.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace metrics diff --git a/api/include/opentelemetry/metrics/provider.h b/api/include/opentelemetry/metrics/provider.h index ea710a4820..e3359c11f2 100644 --- a/api/include/opentelemetry/metrics/provider.h +++ b/api/include/opentelemetry/metrics/provider.h @@ -7,7 +7,6 @@ #include "opentelemetry/common/macros.h" #include "opentelemetry/common/spin_lock_mutex.h" -#include "opentelemetry/metrics/meter_provider.h" #include "opentelemetry/metrics/noop.h" #include "opentelemetry/nostd/shared_ptr.h" diff --git a/api/include/opentelemetry/nostd/detail/functional.h b/api/include/opentelemetry/nostd/detail/functional.h index 437f92f0ad..0da58dd186 100644 --- a/api/include/opentelemetry/nostd/detail/functional.h +++ b/api/include/opentelemetry/nostd/detail/functional.h @@ -7,8 +7,11 @@ #include "opentelemetry/version.h" -#define OPENTELEMETRY_RETURN(...) \ - noexcept(noexcept(__VA_ARGS__))->decltype(__VA_ARGS__) { return __VA_ARGS__; } +#define OPENTELEMETRY_RETURN(...) \ + noexcept(noexcept(__VA_ARGS__))->decltype(__VA_ARGS__) \ + { \ + return __VA_ARGS__; \ + } OPENTELEMETRY_BEGIN_NAMESPACE namespace nostd diff --git a/api/include/opentelemetry/nostd/detail/invoke.h b/api/include/opentelemetry/nostd/detail/invoke.h index a0c010a8f9..55a943ed12 100644 --- a/api/include/opentelemetry/nostd/detail/invoke.h +++ b/api/include/opentelemetry/nostd/detail/invoke.h @@ -10,8 +10,11 @@ #include "opentelemetry/nostd/detail/void.h" #include "opentelemetry/version.h" -#define OPENTELEMETRY_RETURN(...) \ - noexcept(noexcept(__VA_ARGS__))->decltype(__VA_ARGS__) { return __VA_ARGS__; } +#define OPENTELEMETRY_RETURN(...) \ + noexcept(noexcept(__VA_ARGS__))->decltype(__VA_ARGS__) \ + { \ + return __VA_ARGS__; \ + } OPENTELEMETRY_BEGIN_NAMESPACE namespace nostd @@ -34,7 +37,7 @@ template <> struct Invoke { template - inline static constexpr auto invoke(R T::*pmf, Arg &&arg, Args &&... args) + inline static constexpr auto invoke(R T::*pmf, Arg &&arg, Args &&...args) OPENTELEMETRY_RETURN((std::forward(arg).*pmf)(std::forward(args)...)) }; @@ -42,7 +45,7 @@ template <> struct Invoke { template - inline static constexpr auto invoke(R T::*pmf, Arg &&arg, Args &&... args) + inline static constexpr auto invoke(R T::*pmf, Arg &&arg, Args &&...args) OPENTELEMETRY_RETURN((std::forward(arg).get().*pmf)(std::forward(args)...)) }; @@ -50,7 +53,7 @@ template <> struct Invoke { template - inline static constexpr auto invoke(R T::*pmf, Arg &&arg, Args &&... args) + inline static constexpr auto invoke(R T::*pmf, Arg &&arg, Args &&...args) OPENTELEMETRY_RETURN(((*std::forward(arg)).*pmf)(std::forward(args)...)) }; @@ -79,20 +82,21 @@ struct Invoke }; template -inline constexpr auto invoke_impl(R T::*f, Arg &&arg, Args &&... args) - OPENTELEMETRY_RETURN(Invoke::value, - (std::is_base_of>::value - ? 0 - : is_reference_wrapper>::value ? 1 : 2)>:: - invoke(f, std::forward(arg), std::forward(args)...)) +inline constexpr auto invoke_impl(R T::*f, Arg &&arg, Args &&...args) OPENTELEMETRY_RETURN( + Invoke::value, + (std::is_base_of>::value ? 0 + : is_reference_wrapper>::value ? 1 + : 2)>::invoke(f, + std::forward(arg), + std::forward(args)...)) #ifdef _MSC_VER # pragma warning(push) # pragma warning(disable : 4100) #endif - template - inline constexpr auto invoke_impl(F &&f, Args &&... args) - OPENTELEMETRY_RETURN(std::forward(f)(std::forward(args)...)) + template + inline constexpr auto invoke_impl(F &&f, Args &&...args) + OPENTELEMETRY_RETURN(std::forward(f)(std::forward(args)...)) #ifdef _MSC_VER # pragma warning(pop) #endif diff --git a/api/include/opentelemetry/nostd/detail/trait.h b/api/include/opentelemetry/nostd/detail/trait.h index 90a568c4f4..8f76fdec8b 100644 --- a/api/include/opentelemetry/nostd/detail/trait.h +++ b/api/include/opentelemetry/nostd/detail/trait.h @@ -27,9 +27,9 @@ template inline constexpr Trait trait() { - return IsTriviallyAvailable::value - ? Trait::TriviallyAvailable - : IsAvailable::value ? Trait::Available : Trait::Unavailable; + return IsTriviallyAvailable::value ? Trait::TriviallyAvailable + : IsAvailable::value ? Trait::Available + : Trait::Unavailable; } inline constexpr Trait common_trait_impl(Trait result) diff --git a/api/include/opentelemetry/nostd/function_ref.h b/api/include/opentelemetry/nostd/function_ref.h index edc2007762..971df22216 100644 --- a/api/include/opentelemetry/nostd/function_ref.h +++ b/api/include/opentelemetry/nostd/function_ref.h @@ -84,9 +84,15 @@ class function_ref function_ref(const function_ref &) noexcept = default; function_ref(function_ref &&) noexcept = default; - R operator()(Args... args) const { return invoker_(callable_, std::forward(args)...); } + R operator()(Args... args) const + { + return invoker_(callable_, std::forward(args)...); + } - explicit operator bool() const { return invoker_; } + explicit operator bool() const + { + return invoker_; + } }; } // namespace nostd OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/plugin/detail/dynamic_load_unix.h b/api/include/opentelemetry/plugin/detail/dynamic_load_unix.h index bcc4bd0b87..bbd32b247a 100644 --- a/api/include/opentelemetry/plugin/detail/dynamic_load_unix.h +++ b/api/include/opentelemetry/plugin/detail/dynamic_load_unix.h @@ -3,7 +3,6 @@ #pragma once -#include #include #include diff --git a/api/include/opentelemetry/plugin/detail/dynamic_load_windows.h b/api/include/opentelemetry/plugin/detail/dynamic_load_windows.h index 7a586b6bcc..f119f02957 100644 --- a/api/include/opentelemetry/plugin/detail/dynamic_load_windows.h +++ b/api/include/opentelemetry/plugin/detail/dynamic_load_windows.h @@ -29,9 +29,9 @@ inline void GetLastErrorMessage(std::string &error_message) noexcept // See https://stackoverflow.com/a/455533/4447365 LPTSTR error_text = nullptr; auto size = ::FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - reinterpret_cast(&error_text), 0, nullptr); + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + reinterpret_cast(&error_text), 0, nullptr); if (size == 0) { return; diff --git a/api/include/opentelemetry/plugin/detail/tracer_handle.h b/api/include/opentelemetry/plugin/detail/tracer_handle.h index 559d7ddf40..e03bac8ac3 100644 --- a/api/include/opentelemetry/plugin/detail/tracer_handle.h +++ b/api/include/opentelemetry/plugin/detail/tracer_handle.h @@ -3,10 +3,14 @@ #pragma once -#include "opentelemetry/trace/tracer.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace trace +{ +class Tracer; +} + namespace plugin { /** diff --git a/api/include/opentelemetry/plugin/detail/utility.h b/api/include/opentelemetry/plugin/detail/utility.h index 6f8dd5d462..58601b6099 100644 --- a/api/include/opentelemetry/plugin/detail/utility.h +++ b/api/include/opentelemetry/plugin/detail/utility.h @@ -5,6 +5,9 @@ #include #include +#if __EXCEPTIONS +# include +#endif #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/version.h" diff --git a/api/include/opentelemetry/std/string_view.h b/api/include/opentelemetry/std/string_view.h index 8fd159d3ad..0975d3eff0 100644 --- a/api/include/opentelemetry/std/string_view.h +++ b/api/include/opentelemetry/std/string_view.h @@ -5,13 +5,7 @@ #include "opentelemetry/version.h" -#include "opentelemetry/std/utility.h" - -#include -#include #include -#include -#include OPENTELEMETRY_BEGIN_NAMESPACE // Standard Type aliases in nostd namespace diff --git a/api/include/opentelemetry/std/variant.h b/api/include/opentelemetry/std/variant.h index 30d38d9c63..eb5b317f08 100644 --- a/api/include/opentelemetry/std/variant.h +++ b/api/include/opentelemetry/std/variant.h @@ -6,10 +6,13 @@ #include "opentelemetry/version.h" #include -#include #include #include +#if __EXCEPTIONS +# include +#endif + OPENTELEMETRY_BEGIN_NAMESPACE // Standard Type aliases in nostd namespace namespace nostd @@ -132,7 +135,7 @@ constexpr const T &&get(const std::variant &&v) }; template -constexpr auto visit(_Callable &&_Obj, _Variants &&... _Args) +constexpr auto visit(_Callable &&_Obj, _Variants &&..._Args) { // Ref: // https://stackoverflow.com/questions/52310835/xcode-10-call-to-unavailable-function-stdvisit @@ -193,7 +196,7 @@ constexpr const T &&get(const std::variant &&v) } template -constexpr auto visit(_Callable &&_Obj, _Variants &&... _Args) +constexpr auto visit(_Callable &&_Obj, _Variants &&..._Args) { return std::visit<_Callable, _Variants...>(static_cast<_Callable &&>(_Obj), static_cast<_Variants &&>(_Args)...); diff --git a/api/include/opentelemetry/trace/scope.h b/api/include/opentelemetry/trace/scope.h index ecceba458f..c2a2af7420 100644 --- a/api/include/opentelemetry/trace/scope.h +++ b/api/include/opentelemetry/trace/scope.h @@ -4,12 +4,14 @@ #pragma once #include "opentelemetry/context/runtime_context.h" -#include "opentelemetry/trace/span.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace trace { + +class Span; + /** * Controls how long a span is active. * diff --git a/api/include/opentelemetry/trace/span.h b/api/include/opentelemetry/trace/span.h index 77de4050d4..ec826efb29 100644 --- a/api/include/opentelemetry/trace/span.h +++ b/api/include/opentelemetry/trace/span.h @@ -3,19 +3,13 @@ #pragma once -#include - #include "opentelemetry/common/attribute_value.h" #include "opentelemetry/common/key_value_iterable_view.h" -#include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/nostd/span.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/type_traits.h" -#include "opentelemetry/nostd/unique_ptr.h" -#include "opentelemetry/trace/canonical_code.h" #include "opentelemetry/trace/span_context.h" #include "opentelemetry/trace/span_metadata.h" - #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE @@ -38,10 +32,10 @@ class Span virtual ~Span() = default; // Not copiable or movable. - Span(const Span &) = delete; - Span(Span &&) = delete; + Span(const Span &) = delete; + Span(Span &&) = delete; Span &operator=(const Span &) = delete; - Span &operator=(Span &&) = delete; + Span &operator=(Span &&) = delete; // Sets an attribute on the Span. If the Span previously contained a mapping // for diff --git a/api/include/opentelemetry/trace/span_context.h b/api/include/opentelemetry/trace/span_context.h index e19bb99001..d82c17f7c2 100644 --- a/api/include/opentelemetry/trace/span_context.h +++ b/api/include/opentelemetry/trace/span_context.h @@ -3,7 +3,7 @@ #pragma once -#include "opentelemetry/nostd/unique_ptr.h" +#include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/trace/span_id.h" #include "opentelemetry/trace/trace_flags.h" #include "opentelemetry/trace/trace_id.h" diff --git a/api/include/opentelemetry/trace/span_metadata.h b/api/include/opentelemetry/trace/span_metadata.h index f27239c739..5e615ea537 100644 --- a/api/include/opentelemetry/trace/span_metadata.h +++ b/api/include/opentelemetry/trace/span_metadata.h @@ -4,6 +4,7 @@ #pragma once #include "opentelemetry/common/timestamp.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace trace diff --git a/api/include/opentelemetry/trace/span_startoptions.h b/api/include/opentelemetry/trace/span_startoptions.h index 9265574a57..8e80214610 100644 --- a/api/include/opentelemetry/trace/span_startoptions.h +++ b/api/include/opentelemetry/trace/span_startoptions.h @@ -4,6 +4,7 @@ #pragma once #include "opentelemetry/context/context.h" +#include "opentelemetry/nostd/variant.h" #include "opentelemetry/trace/span_context.h" #include "opentelemetry/trace/span_metadata.h" diff --git a/api/include/opentelemetry/trace/trace_flags.h b/api/include/opentelemetry/trace/trace_flags.h index 3cfbb022f4..1f7bf4f9b3 100644 --- a/api/include/opentelemetry/trace/trace_flags.h +++ b/api/include/opentelemetry/trace/trace_flags.h @@ -4,7 +4,6 @@ #pragma once #include -#include #include "opentelemetry/nostd/span.h" #include "opentelemetry/version.h" diff --git a/api/include/opentelemetry/trace/trace_state.h b/api/include/opentelemetry/trace/trace_state.h index 28fd126fea..1991ad9307 100644 --- a/api/include/opentelemetry/trace/trace_state.h +++ b/api/include/opentelemetry/trace/trace_state.h @@ -9,7 +9,6 @@ #include "opentelemetry/common/kv_properties.h" #include "opentelemetry/nostd/shared_ptr.h" -#include "opentelemetry/nostd/span.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/unique_ptr.h" @@ -307,7 +306,10 @@ class OPENTELEMETRY_EXPORT TraceState return true; } - static bool IsLowerCaseAlphaOrDigit(char c) { return isdigit(c) || islower(c); } + static bool IsLowerCaseAlphaOrDigit(char c) + { + return isdigit(c) || islower(c); + } private: // Store entries in a C-style array to avoid using std::array or std::vector. diff --git a/api/include/opentelemetry/trace/tracer.h b/api/include/opentelemetry/trace/tracer.h index b60336a48d..89307e2d5b 100644 --- a/api/include/opentelemetry/trace/tracer.h +++ b/api/include/opentelemetry/trace/tracer.h @@ -6,7 +6,6 @@ #include "opentelemetry/context/context.h" #include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/nostd/string_view.h" -#include "opentelemetry/nostd/unique_ptr.h" #include "opentelemetry/trace/default_span.h" #include "opentelemetry/trace/scope.h" #include "opentelemetry/trace/span.h" @@ -67,7 +66,7 @@ class Tracer template ::value> * = nullptr, - nostd::enable_if_t::value> * = nullptr> + nostd::enable_if_t::value> * = nullptr> nostd::shared_ptr StartSpan(nostd::string_view name, const T &attributes, const U &links, diff --git a/api/include/opentelemetry/trace/tracer_provider.h b/api/include/opentelemetry/trace/tracer_provider.h index 9d3125db40..bc8ff8da89 100644 --- a/api/include/opentelemetry/trace/tracer_provider.h +++ b/api/include/opentelemetry/trace/tracer_provider.h @@ -5,11 +5,14 @@ #include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/nostd/string_view.h" -#include "opentelemetry/trace/tracer.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace trace { + +class Tracer; + /** * Creates new Tracer instances. */ diff --git a/api/test/logs/logger_test.cc b/api/test/logs/logger_test.cc index d07e12e40e..31a2898b14 100644 --- a/api/test/logs/logger_test.cc +++ b/api/test/logs/logger_test.cc @@ -8,6 +8,7 @@ # include # include "opentelemetry/common/timestamp.h" +# include "opentelemetry/logs/event_logger.h" # include "opentelemetry/logs/logger.h" # include "opentelemetry/logs/provider.h" # include "opentelemetry/nostd/shared_ptr.h" diff --git a/api/test/nostd/shared_ptr_test.cc b/api/test/nostd/shared_ptr_test.cc index 6f3d43a771..bcf4b2ba18 100644 --- a/api/test/nostd/shared_ptr_test.cc +++ b/api/test/nostd/shared_ptr_test.cc @@ -130,7 +130,7 @@ TEST(SharedPtrTest, PointerOperators) EXPECT_EQ(&*ptr1, value); EXPECT_EQ( - shared_ptr { new B }->f(), 123); + shared_ptr { new B } -> f(), 123); } TEST(SharedPtrTest, Swap) diff --git a/api/test/nostd/unique_ptr_test.cc b/api/test/nostd/unique_ptr_test.cc index aa49d387b7..bbc18bf3d7 100644 --- a/api/test/nostd/unique_ptr_test.cc +++ b/api/test/nostd/unique_ptr_test.cc @@ -115,7 +115,7 @@ TEST(UniquePtrTest, PointerOperators) EXPECT_EQ(&*ptr1, value); EXPECT_EQ( - unique_ptr { new B }->f(), 123); + unique_ptr { new B } -> f(), 123); } TEST(UniquePtrTest, Reset) diff --git a/api/test/trace/propagation/b3_propagation_test.cc b/api/test/trace/propagation/b3_propagation_test.cc index 2538b5be29..f19ce47b27 100644 --- a/api/test/trace/propagation/b3_propagation_test.cc +++ b/api/test/trace/propagation/b3_propagation_test.cc @@ -138,8 +138,8 @@ TEST(B3PropagationTest, SetRemoteSpanMultiHeader) { TextMapCarrierTest carrier; carrier.headers_ = {{"X-B3-TraceId", "80f198ee56343ba864fe8b2a57d3eff7"}, - {"X-B3-SpanId", "e457b5a2e4d86bd1"}, - {"X-B3-Sampled", "1"}}; + {"X-B3-SpanId", "e457b5a2e4d86bd1"}, + {"X-B3-Sampled", "1"}}; context::Context ctx1 = context::Context{}; context::Context ctx2 = format.Extract(carrier, ctx1); diff --git a/api/test/trace/trace_state_test.cc b/api/test/trace/trace_state_test.cc index ed6c7e8274..7f5a05cfe6 100644 --- a/api/test/trace/trace_state_test.cc +++ b/api/test/trace/trace_state_test.cc @@ -177,7 +177,7 @@ TEST(TraceStateTest, MemorySafe) nostd::string_view key_string = "test_key_1test_key_2test_key_3"; nostd::string_view val_string = "test_val_1test_val_2test_val_3"; nostd::string_view keys[kNumPairs] = {key_string.substr(0, 10), key_string.substr(10, 10), - key_string.substr(20, 10)}; + key_string.substr(20, 10)}; nostd::string_view values[kNumPairs] = {val_string.substr(0, 10), val_string.substr(10, 10), val_string.substr(20, 10)}; diff --git a/examples/batch/main.cc b/examples/batch/main.cc index a417933247..f03f195d0b 100644 --- a/examples/batch/main.cc +++ b/examples/batch/main.cc @@ -2,11 +2,16 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/ostream/span_exporter_factory.h" +#include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/sdk/trace/batch_span_processor_factory.h" +#include "opentelemetry/sdk/trace/batch_span_processor_options.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" #include +#include #include constexpr int kNumSpans = 10; diff --git a/examples/etw_threads/CMakeLists.txt b/examples/etw_threads/CMakeLists.txt index 008e4518de..7ed90f8e77 100644 --- a/examples/etw_threads/CMakeLists.txt +++ b/examples/etw_threads/CMakeLists.txt @@ -3,7 +3,9 @@ project(etw_threadpool) -add_executable(etw_threadpool main.cc) +if(WIN32) + add_executable(etw_threadpool main.cc) -target_link_libraries(etw_threadpool ${CMAKE_THREAD_LIBS_INIT} - opentelemetry_api opentelemetry_exporter_etw) + target_link_libraries(etw_threadpool ${CMAKE_THREAD_LIBS_INIT} + opentelemetry_api opentelemetry_exporter_etw) +endif() diff --git a/examples/grpc/client.cc b/examples/grpc/client.cc index 11fde192b3..a24ac8befe 100644 --- a/examples/grpc/client.cc +++ b/examples/grpc/client.cc @@ -49,13 +49,13 @@ class GreeterClient std::string span_name = "GreeterClient/Greet"; auto span = get_tracer("grpc")->StartSpan( - span_name, - {{SemanticConventions::kRpcSystem, "grpc"}, - {SemanticConventions::kRpcService, "grpc-example.GreetService"}, - {SemanticConventions::kRpcMethod, "Greet"}, - {SemanticConventions::kNetSockPeerAddr, ip}, - {SemanticConventions::kNetPeerPort, port}}, - options); + span_name, + {{SemanticConventions::kRpcSystem, "grpc"}, + {SemanticConventions::kRpcService, "grpc-example.GreetService"}, + {SemanticConventions::kRpcMethod, "Greet"}, + {SemanticConventions::kNetSockPeerAddr, ip}, + {SemanticConventions::kNetPeerPort, port}}, + options); auto scope = get_tracer("grpc-client")->WithActiveSpan(span); diff --git a/examples/grpc/server.cc b/examples/grpc/server.cc index 6ba96a009e..a8fac8b5f0 100644 --- a/examples/grpc/server.cc +++ b/examples/grpc/server.cc @@ -68,11 +68,11 @@ class GreeterServer final : public Greeter::Service std::string span_name = "GreeterService/Greet"; auto span = get_tracer("grpc")->StartSpan(span_name, - {{SemanticConventions::kRpcSystem, "grpc"}, - {SemanticConventions::kRpcService, "GreeterService"}, - {SemanticConventions::kRpcMethod, "Greet"}, - {SemanticConventions::kRpcGrpcStatusCode, 0}}, - options); + {{SemanticConventions::kRpcSystem, "grpc"}, + {SemanticConventions::kRpcService, "GreeterService"}, + {SemanticConventions::kRpcMethod, "Greet"}, + {SemanticConventions::kRpcGrpcStatusCode, 0}}, + options); auto scope = get_tracer("grpc")->WithActiveSpan(span); // Fetch and parse whatever HTTP headers we can from the gRPC request. diff --git a/examples/grpc/tracer_common.h b/examples/grpc/tracer_common.h index 073bffd50a..347e7a8184 100644 --- a/examples/grpc/tracer_common.h +++ b/examples/grpc/tracer_common.h @@ -7,7 +7,10 @@ #include "opentelemetry/context/propagation/text_map_propagator.h" #include "opentelemetry/exporters/ostream/span_exporter_factory.h" #include "opentelemetry/nostd/shared_ptr.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" +#include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/sdk/trace/tracer_context_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/propagation/http_trace_context.h" diff --git a/examples/http/tracer_common.h b/examples/http/tracer_common.h index 0b74d2ff8e..7d9f1ca571 100644 --- a/examples/http/tracer_common.h +++ b/examples/http/tracer_common.h @@ -4,7 +4,10 @@ #pragma once #include "opentelemetry/exporters/ostream/span_exporter_factory.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" +#include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/sdk/trace/tracer_context_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" diff --git a/examples/jaeger/main.cc b/examples/jaeger/main.cc index faa9758f02..1b60eaed2a 100644 --- a/examples/jaeger/main.cc +++ b/examples/jaeger/main.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/jaeger/jaeger_exporter_factory.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" diff --git a/examples/logs_simple/main.cc b/examples/logs_simple/main.cc index f4bcecbb39..08c08b23d7 100644 --- a/examples/logs_simple/main.cc +++ b/examples/logs_simple/main.cc @@ -3,6 +3,8 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/exporters/ostream/span_exporter_factory.h" +# include "opentelemetry/sdk/trace/exporter.h" +# include "opentelemetry/sdk/trace/processor.h" # include "opentelemetry/sdk/trace/simple_processor_factory.h" # include "opentelemetry/sdk/trace/tracer_provider_factory.h" # include "opentelemetry/trace/provider.h" diff --git a/examples/multi_processor/main.cc b/examples/multi_processor/main.cc index 10fe606b30..da3c6ee404 100644 --- a/examples/multi_processor/main.cc +++ b/examples/multi_processor/main.cc @@ -4,6 +4,7 @@ #include "opentelemetry/exporters/memory/in_memory_span_data.h" #include "opentelemetry/exporters/memory/in_memory_span_exporter_factory.h" #include "opentelemetry/exporters/ostream/span_exporter_factory.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" @@ -15,6 +16,8 @@ # include "foo_library/foo_library.h" #endif +#include + using opentelemetry::exporter::memory::InMemorySpanData; namespace trace_api = opentelemetry::trace; namespace trace_sdk = opentelemetry::sdk::trace; diff --git a/examples/multithreaded/main.cc b/examples/multithreaded/main.cc index 49eaf4d16d..6071e2597a 100644 --- a/examples/multithreaded/main.cc +++ b/examples/multithreaded/main.cc @@ -3,6 +3,8 @@ #include "opentelemetry/exporters/ostream/span_exporter_factory.h" #include "opentelemetry/sdk/resource/resource.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" diff --git a/examples/otlp/grpc_log_main.cc b/examples/otlp/grpc_log_main.cc index e0c85c38c2..868c6c7a24 100644 --- a/examples/otlp/grpc_log_main.cc +++ b/examples/otlp/grpc_log_main.cc @@ -3,10 +3,13 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h" +# include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" # include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h" # include "opentelemetry/logs/provider.h" # include "opentelemetry/sdk/logs/logger_provider_factory.h" # include "opentelemetry/sdk/logs/simple_log_record_processor_factory.h" +# include "opentelemetry/sdk/trace/exporter.h" +# include "opentelemetry/sdk/trace/processor.h" # include "opentelemetry/sdk/trace/simple_processor_factory.h" # include "opentelemetry/sdk/trace/tracer_provider_factory.h" # include "opentelemetry/trace/provider.h" diff --git a/examples/otlp/grpc_main.cc b/examples/otlp/grpc_main.cc index d7e3b29d6c..e7ec2d1871 100644 --- a/examples/otlp/grpc_main.cc +++ b/examples/otlp/grpc_main.cc @@ -2,6 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h" +#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" diff --git a/examples/otlp/grpc_metric_main.cc b/examples/otlp/grpc_metric_main.cc index 1c34ebed75..9d7376d55a 100644 --- a/examples/otlp/grpc_metric_main.cc +++ b/examples/otlp/grpc_metric_main.cc @@ -2,11 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h" +#include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h" #include "opentelemetry/metrics/provider.h" #include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h" #include "opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader.h" #include "opentelemetry/sdk/metrics/meter.h" #include "opentelemetry/sdk/metrics/meter_provider.h" +#include "opentelemetry/sdk/metrics/push_metric_exporter.h" #include #include diff --git a/examples/otlp/http_log_main.cc b/examples/otlp/http_log_main.cc index a1171b04e0..188625dd74 100644 --- a/examples/otlp/http_log_main.cc +++ b/examples/otlp/http_log_main.cc @@ -3,12 +3,15 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/exporters/otlp/otlp_http_exporter_factory.h" +# include "opentelemetry/exporters/otlp/otlp_http_exporter_options.h" # include "opentelemetry/exporters/otlp/otlp_http_log_record_exporter_factory.h" # include "opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h" # include "opentelemetry/logs/provider.h" # include "opentelemetry/sdk/common/global_log_handler.h" # include "opentelemetry/sdk/logs/logger_provider_factory.h" # include "opentelemetry/sdk/logs/simple_log_record_processor_factory.h" +# include "opentelemetry/sdk/trace/exporter.h" +# include "opentelemetry/sdk/trace/processor.h" # include "opentelemetry/sdk/trace/simple_processor_factory.h" # include "opentelemetry/sdk/trace/tracer_provider_factory.h" # include "opentelemetry/trace/provider.h" diff --git a/examples/otlp/http_main.cc b/examples/otlp/http_main.cc index 09b8daeee2..e975e700c3 100644 --- a/examples/otlp/http_main.cc +++ b/examples/otlp/http_main.cc @@ -4,6 +4,8 @@ #include "opentelemetry/exporters/otlp/otlp_http_exporter_factory.h" #include "opentelemetry/exporters/otlp/otlp_http_exporter_options.h" #include "opentelemetry/sdk/common/global_log_handler.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" diff --git a/examples/simple/main.cc b/examples/simple/main.cc index 6a8b28e4dd..fd3b9ab132 100644 --- a/examples/simple/main.cc +++ b/examples/simple/main.cc @@ -2,8 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/ostream/span_exporter_factory.h" +#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" + #include "opentelemetry/trace/provider.h" #ifdef BAZEL_BUILD diff --git a/examples/zipkin/main.cc b/examples/zipkin/main.cc index 6788d8cabe..0052cd430e 100644 --- a/examples/zipkin/main.cc +++ b/examples/zipkin/main.cc @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/zipkin/zipkin_exporter_factory.h" +#include "opentelemetry/sdk/resource/resource.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/simple_processor_factory.h" #include "opentelemetry/sdk/trace/tracer_provider_factory.h" #include "opentelemetry/trace/provider.h" diff --git a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_record_exporter.h b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_record_exporter.h index 06b4c3b727..5eb2fe926c 100644 --- a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_record_exporter.h +++ b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_record_exporter.h @@ -4,22 +4,27 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW -# include "nlohmann/json.hpp" # include "opentelemetry/common/spin_lock_mutex.h" -# include "opentelemetry/ext/http/client/http_client_factory.h" -# include "opentelemetry/nostd/shared_ptr.h" -# include "opentelemetry/nostd/type_traits.h" +# include "opentelemetry/nostd/span.h" # include "opentelemetry/sdk/logs/exporter.h" -# include "opentelemetry/sdk/logs/recordable.h" -# include -# include -# include -# include -# include +# ifdef ENABLE_ASYNC_EXPORT +# include "opentelemetry/nostd/shared_ptr.h" # include +# include +#endif OPENTELEMETRY_BEGIN_NAMESPACE +namespace ext +{ +namespace http +{ +namespace client +{ + class HttpClient; +} // namespace client +} // namespace http +} // namespace ext namespace exporter { namespace logs diff --git a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_recordable.h b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_recordable.h index d6ed78d117..2c408f12f8 100644 --- a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_recordable.h +++ b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_recordable.h @@ -4,10 +4,8 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW -# include # include # include -# include # include "nlohmann/json.hpp" # include "opentelemetry/common/macros.h" diff --git a/exporters/elasticsearch/src/es_log_record_exporter.cc b/exporters/elasticsearch/src/es_log_record_exporter.cc index 60a5d8d781..950c9eab4b 100644 --- a/exporters/elasticsearch/src/es_log_record_exporter.cc +++ b/exporters/elasticsearch/src/es_log_record_exporter.cc @@ -9,6 +9,8 @@ # include # include "opentelemetry/exporters/elasticsearch/es_log_record_exporter.h" # include "opentelemetry/exporters/elasticsearch/es_log_recordable.h" +# include "opentelemetry/ext/http/client/http_client.h" +# include "opentelemetry/ext/http/client/http_client_factory.h" # include "opentelemetry/sdk_config.h" namespace nostd = opentelemetry::nostd; @@ -362,13 +364,13 @@ sdk::common::ExportResult ElasticsearchLogRecordExporter::Export( if (result != opentelemetry::sdk::common::ExportResult::kSuccess) { OTEL_INTERNAL_LOG_ERROR("[ES Log Exporter] ERROR: Export " - << span_count - << " trace span(s) error: " << static_cast(result)); + << span_count + << " trace span(s) error: " << static_cast(result)); } else { OTEL_INTERNAL_LOG_DEBUG("[ES Log Exporter] Export " << span_count - << " trace span(s) success"); + << " trace span(s) success"); } synchronization_data->finished_session_counter_.fetch_add(1, std::memory_order_release); diff --git a/exporters/etw/include/opentelemetry/exporters/etw/etw_fields.h b/exporters/etw/include/opentelemetry/exporters/etw/etw_fields.h index 041929d1c0..0f64ca3898 100644 --- a/exporters/etw/include/opentelemetry/exporters/etw/etw_fields.h +++ b/exporters/etw/include/opentelemetry/exporters/etw/etw_fields.h @@ -15,8 +15,6 @@ */ #pragma once -#include - #include "opentelemetry/exporters/etw/utils.h" /* clang-format off */ diff --git a/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h b/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h index 039351f66e..b1408ece56 100644 --- a/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h +++ b/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h @@ -370,7 +370,10 @@ class Tracer : public opentelemetry::trace::Tracer, } } - const opentelemetry::trace::TraceId &trace_id() { return traceId_; } + const opentelemetry::trace::TraceId &trace_id() + { + return traceId_; + } friend class Span; @@ -483,10 +486,9 @@ class Tracer : public opentelemetry::trace::Tracer, auto spanContext = std::unique_ptr(new opentelemetry::trace::SpanContext( traceId, GetIdGenerator(tracerProvider_).GenerateSpanId(), traceFlags, false, - sampling_result.trace_state - ? sampling_result.trace_state - : parentContext.IsValid() ? parentContext.trace_state() - : opentelemetry::trace::TraceState::GetDefault())); + sampling_result.trace_state ? sampling_result.trace_state + : parentContext.IsValid() ? parentContext.trace_state() + : opentelemetry::trace::TraceState::GetDefault())); if (sampling_result.decision == sdk::trace::Decision::DROP) { @@ -711,7 +713,10 @@ class Tracer : public opentelemetry::trace::Tracer, /** * @brief Tracer destructor. */ - virtual ~Tracer() { CloseWithMicroseconds(0); } + virtual ~Tracer() + { + CloseWithMicroseconds(0); + } }; /** diff --git a/exporters/etw/include/opentelemetry/exporters/etw/utils.h b/exporters/etw/include/opentelemetry/exporters/etw/utils.h index 6a887b6831..b021e280ea 100644 --- a/exporters/etw/include/opentelemetry/exporters/etw/utils.h +++ b/exporters/etw/include/opentelemetry/exporters/etw/utils.h @@ -3,7 +3,6 @@ #pragma once -#include #include #include #include diff --git a/exporters/etw/test/etw_perf_test.cc b/exporters/etw/test/etw_perf_test.cc index 79052464e8..06af94a5af 100644 --- a/exporters/etw/test/etw_perf_test.cc +++ b/exporters/etw/test/etw_perf_test.cc @@ -62,8 +62,8 @@ class ETWProviderStressTest { std::string eventName = "MyEvent"; Properties event = {{"uint32Key", (uint32_t)1234}, - {"uint64Key", (uint64_t)1234567890}, - {"strKey", "someValue"}}; + {"uint64Key", (uint64_t)1234567890}, + {"strKey", "someValue"}}; span_->AddEvent(eventName, event); return true; } diff --git a/exporters/jaeger/include/opentelemetry/exporters/jaeger/recordable.h b/exporters/jaeger/include/opentelemetry/exporters/jaeger/recordable.h index b1b944fd07..d1b2cdd89a 100644 --- a/exporters/jaeger/include/opentelemetry/exporters/jaeger/recordable.h +++ b/exporters/jaeger/include/opentelemetry/exporters/jaeger/recordable.h @@ -7,8 +7,7 @@ #include -#include - +#include #include #include diff --git a/exporters/jaeger/src/TUDPTransport.cc b/exporters/jaeger/src/TUDPTransport.cc index e411127392..332c2b33e7 100644 --- a/exporters/jaeger/src/TUDPTransport.cc +++ b/exporters/jaeger/src/TUDPTransport.cc @@ -59,7 +59,7 @@ void TUDPTransport::open() } socket_ = socket(server_addr_info_->ai_family, server_addr_info_->ai_socktype, - server_addr_info_->ai_protocol); + server_addr_info_->ai_protocol); sockaddr_len = server_addr_info_->ai_addr->sa_family == AF_INET ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6); } diff --git a/exporters/jaeger/src/recordable.cc b/exporters/jaeger/src/recordable.cc index d147d96553..47656b6cdb 100644 --- a/exporters/jaeger/src/recordable.cc +++ b/exporters/jaeger/src/recordable.cc @@ -3,6 +3,8 @@ #include "opentelemetry/exporters/jaeger/recordable.h" #include "opentelemetry/sdk/common/global_log_handler.h" +#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" +#include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/sdk/resource/semantic_conventions.h" OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/exporters/jaeger/test/jaeger_exporter_test.cc b/exporters/jaeger/test/jaeger_exporter_test.cc index 7f86f877bc..ea305267c5 100644 --- a/exporters/jaeger/test/jaeger_exporter_test.cc +++ b/exporters/jaeger/test/jaeger_exporter_test.cc @@ -1,11 +1,12 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -#include -#include -#include +#include "opentelemetry/exporters/jaeger/jaeger_exporter.h" #include "opentelemetry/sdk/trace/batch_span_processor.h" +#include "opentelemetry/sdk/trace/batch_span_processor_options.h" +#include "opentelemetry/sdk/trace/tracer.h" #include "opentelemetry/sdk/trace/tracer_provider.h" +#include "opentelemetry/trace/span_startoptions.h" #ifdef BAZEL_BUILD # include "exporters/jaeger/src/thrift_sender.h" @@ -16,6 +17,9 @@ #include #include "gmock/gmock.h" +#include +#include + namespace trace = opentelemetry::trace; namespace nostd = opentelemetry::nostd; namespace sdktrace = opentelemetry::sdk::trace; diff --git a/exporters/jaeger/test/jaeger_recordable_test.cc b/exporters/jaeger/test/jaeger_recordable_test.cc index bcfbd35032..017817fd60 100644 --- a/exporters/jaeger/test/jaeger_recordable_test.cc +++ b/exporters/jaeger/test/jaeger_recordable_test.cc @@ -3,6 +3,7 @@ #include #include "opentelemetry/exporters/jaeger/recordable.h" +#include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" #include "opentelemetry/sdk/trace/simple_processor.h" #include "opentelemetry/sdk/trace/span_data.h" @@ -214,10 +215,10 @@ TEST(JaegerSpanRecordable, SetAttributes) } rec.SetAttribute("key2", nostd::span{{false, true}}); rec.SetAttribute("key3", nostd::span{{-320, 320}}); - rec.SetAttribute("key4", nostd::span{{-640, 640}}); - rec.SetAttribute("key5", nostd::span{{320, 322}}); + rec.SetAttribute("key4", nostd::span{{-640L, 640L}}); + rec.SetAttribute("key5", nostd::span{{320u, 322u}}); rec.SetAttribute("key6", nostd::span{{4.15, 5.15}}); - rec.SetAttribute("key7", nostd::span{{"string_v1", "string_v2"}}); + rec.SetAttribute("key7", nostd::span{{nostd::string_view{"string_v1"}, nostd::string_view{"string_v2"}}}); auto tags = rec.Tags(); EXPECT_EQ(tags.size(), values.size() + 12); @@ -276,7 +277,7 @@ TEST(JaegerSpanRecordable, SetResource) const std::string service_name_key = "service.name"; std::string service_name_value = "test-jaeger-service-name"; auto resource = opentelemetry::sdk::resource::Resource::Create( - {{service_name_key, service_name_value}, {"key1", "value1"}, {"key2", "value2"}}); + {{service_name_key, service_name_value}, {"key1", "value1"}, {"key2", "value2"}}); rec.SetResource(resource); auto service_name = rec.ServiceName(); diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/common_utils.h b/exporters/ostream/include/opentelemetry/exporters/ostream/common_utils.h index 11e098c5c0..452d6febb6 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/common_utils.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/common_utils.h @@ -1,13 +1,13 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -#include -#include +#pragma once + +#include #include #include "opentelemetry/nostd/variant.h" #include "opentelemetry/sdk/common/attribute_utils.h" -#pragma once OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter { diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/log_record_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/log_record_exporter.h index 34806bd200..228c55b0cf 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/log_record_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/log_record_exporter.h @@ -4,14 +4,17 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW +# include "opentelemetry/common/attribute_value.h" # include "opentelemetry/common/spin_lock_mutex.h" # include "opentelemetry/nostd/type_traits.h" +# include "opentelemetry/sdk/common/attribute_utils.h" # include "opentelemetry/sdk/logs/exporter.h" # include "opentelemetry/version.h" # include -# include +# include +# include OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/metric_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/metric_exporter.h index 36e5917457..0ac0d9a279 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/metric_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/metric_exporter.h @@ -5,6 +5,7 @@ #include #include + #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/sdk/metrics/data/metric_data.h" #include "opentelemetry/sdk/metrics/instruments.h" diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter_factory.h b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter_factory.h index 79ba3b06d4..4969317ea0 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter_factory.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter_factory.h @@ -3,7 +3,7 @@ #pragma once -#include +#include #include #include "opentelemetry/sdk/version/version.h" diff --git a/exporters/ostream/src/log_record_exporter.cc b/exporters/ostream/src/log_record_exporter.cc index 751de71e2c..5604d66166 100644 --- a/exporters/ostream/src/log_record_exporter.cc +++ b/exporters/ostream/src/log_record_exporter.cc @@ -7,7 +7,6 @@ # include "opentelemetry/sdk/logs/read_write_log_record.h" # include "opentelemetry/sdk_config.h" -# include # include # include diff --git a/exporters/ostream/src/metric_exporter.cc b/exporters/ostream/src/metric_exporter.cc index 21ecd0109a..001ef88323 100644 --- a/exporters/ostream/src/metric_exporter.cc +++ b/exporters/ostream/src/metric_exporter.cc @@ -2,14 +2,16 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/ostream/metric_exporter.h" -#include -#include -#include #include "opentelemetry/exporters/ostream/common_utils.h" #include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h" #include "opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h" #include "opentelemetry/sdk_config.h" +#include +#include +#include +#include + namespace { std::string timeToString(opentelemetry::common::SystemTimestamp time_stamp) diff --git a/exporters/ostream/test/ostream_metric_test.cc b/exporters/ostream/test/ostream_metric_test.cc index cb4a8a3ab4..2f3300abe6 100644 --- a/exporters/ostream/test/ostream_metric_test.cc +++ b/exporters/ostream/test/ostream_metric_test.cc @@ -42,7 +42,7 @@ TEST(OStreamMetricsExporter, ExportSumPointData) opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.2.0"); + "library_name", "1.2.0"); metric_sdk::MetricData metric_data{ metric_sdk::InstrumentDescriptor{"library_name", "description", "unit", metric_sdk::InstrumentType::kCounter, @@ -113,7 +113,7 @@ TEST(OStreamMetricsExporter, ExportHistogramPointData) opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.2.0"); + "library_name", "1.2.0"); metric_sdk::MetricData metric_data{ metric_sdk::InstrumentDescriptor{"library_name", "description", "unit", metric_sdk::InstrumentType::kCounter, @@ -183,7 +183,7 @@ TEST(OStreamMetricsExporter, ExportLastValuePointData) opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.2.0"); + "library_name", "1.2.0"); metric_sdk::LastValuePointData last_value_point_data{}; last_value_point_data.value_ = 10.0; last_value_point_data.is_lastvalue_valid_ = true; @@ -252,7 +252,7 @@ TEST(OStreamMetricsExporter, ExportDropPointData) opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.2.0"); + "library_name", "1.2.0"); metric_sdk::DropPointData drop_point_data{}; metric_sdk::DropPointData drop_point_data2{}; metric_sdk::MetricData metric_data{ diff --git a/exporters/otlp/CMakeLists.txt b/exporters/otlp/CMakeLists.txt index 585e253939..ee50d85400 100644 --- a/exporters/otlp/CMakeLists.txt +++ b/exporters/otlp/CMakeLists.txt @@ -226,6 +226,7 @@ if(BUILD_TESTING) endif() if(WITH_OTLP_GRPC) + add_compile_options(-Wno-suggest-override) add_executable(otlp_grpc_exporter_test test/otlp_grpc_exporter_test.cc) target_link_libraries( otlp_grpc_exporter_test ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} @@ -246,6 +247,7 @@ if(BUILD_TESTING) TEST_LIST otlp_grpc_exporter_factory_test) if(WITH_LOGS_PREVIEW) + add_compile_options(-Wno-suggest-override) add_executable(otlp_grpc_log_record_exporter_test test/otlp_grpc_log_record_exporter_test.cc) target_link_libraries( diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_environment.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_environment.h index c420529a64..7b35202219 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_environment.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_environment.h @@ -4,17 +4,12 @@ #pragma once #include "opentelemetry/common/kv_properties.h" -#include "opentelemetry/nostd/string_view.h" - -#include "opentelemetry/sdk/common/attribute_utils.h" -#include "opentelemetry/sdk/common/env_variables.h" #include "opentelemetry/sdk/version/version.h" #include #include #include #include -#include OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter 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 4ac2c4fe01..c88df2f7bd 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h @@ -7,7 +7,7 @@ #include -#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter @@ -15,6 +15,8 @@ namespace exporter namespace otlp { +struct OtlpGrpcExporterOptions; + /** * The OTLP gRPC client contains utility functions of gRPC. */ 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 ab64d7e769..96b6914fc9 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h @@ -16,6 +16,7 @@ #include "opentelemetry/exporters/otlp/otlp_environment.h" #include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h index 518cf8b82c..6312791ea9 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h @@ -5,15 +5,24 @@ #include -#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" -#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace trace +{ +class SpanExporter; +} // namespace trace +} // namespace sdk + namespace exporter { namespace otlp { +struct OtlpGrpcExporterOptions; + /** * Factory class for OtlpGrpcExporter. */ 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 664ee2934b..417a93248e 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 @@ -4,8 +4,7 @@ #pragma once #include "opentelemetry/exporters/otlp/otlp_environment.h" - -#include +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter 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 becb308ca2..53543d31ee 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 @@ -16,6 +16,7 @@ # include "opentelemetry/exporters/otlp/otlp_environment.h" # include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" # include "opentelemetry/sdk/logs/exporter.h" +# include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h index a6fa8e50d6..ea874404f7 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h @@ -5,15 +5,26 @@ #ifdef ENABLE_LOGS_PREVIEW -# include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" -# include "opentelemetry/sdk/logs/exporter.h" +# include + +# include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace logs +{ +class LogRecordExporter; +} // namespace logs +} // namespace sdk + namespace exporter { namespace otlp { +struct OtlpGrpcExporterOptions; + /** * Factory class for OtlpGrpcLogRecordExporter. */ 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 69bc8ca78d..178230a5b0 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 @@ -15,6 +15,7 @@ #include "opentelemetry/exporters/otlp/otlp_environment.h" #include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h" #include "opentelemetry/sdk/metrics/push_metric_exporter.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h index d605100ae6..08119082bf 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h @@ -3,14 +3,24 @@ #pragma once -#include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h" -#include "opentelemetry/sdk/metrics/push_metric_exporter.h" +#include + +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace metrics +{ +class PushMetricExporter; +} // namespace metrics +} // namespace sdk + namespace exporter { namespace otlp { +struct OtlpGrpcMetricExporterOptions; /** * Factory class for OtlpGrpcMetricExporter. 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 61828fd49e..42208abaf4 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 @@ -5,8 +5,7 @@ #include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" #include "opentelemetry/sdk/metrics/instruments.h" - -#include +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_utils.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_utils.h index 504b0e9df3..f55c08788b 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_utils.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_utils.h @@ -5,7 +5,7 @@ #include -#include "opentelemetry/sdk/version/version.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h index e5bbab9435..cc4ed0188c 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h @@ -3,7 +3,7 @@ #pragma once -#include "opentelemetry/sdk/version/version.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter @@ -11,14 +11,14 @@ namespace exporter namespace otlp { -enum class JsonBytesMappingKind +enum class JsonBytesMappingKind : int { kHexId, kHex, kBase64, }; -enum class HttpRequestContentType +enum class HttpRequestContentType : int { kJson, kBinary, 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 cb26758f9d..0ced80a218 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h @@ -10,6 +10,7 @@ #include "opentelemetry/exporters/otlp/otlp_environment.h" #include "opentelemetry/exporters/otlp/otlp_http.h" +#include "opentelemetry/version.h" #include #include diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter.h index 9188858fc1..0d56af4bb3 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter.h @@ -6,23 +6,28 @@ // We need include exporter.h first, which will include Windows.h with NOMINMAX on Windows #include "opentelemetry/sdk/trace/exporter.h" -#include "opentelemetry/exporters/otlp/otlp_http_client.h" - -#include "opentelemetry/exporters/otlp/otlp_environment.h" - #include "opentelemetry/exporters/otlp/otlp_http_exporter_options.h" +#include "opentelemetry/version.h" #include -#include #include -#include OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace trace +{ +class Recordable; +} // namespace trace +} // namespace sdk + namespace exporter { namespace otlp { +class OtlpHttpClient; + /** * The OTLP exporter exports span data in OpenTelemetry Protocol (OTLP) format. */ diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_factory.h index 5316528365..d3e2fe8e29 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter_factory.h @@ -5,15 +5,24 @@ #include -#include "opentelemetry/exporters/otlp/otlp_http_exporter_options.h" -#include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace trace +{ +class SpanExporter; +} // namespace trace +} // namespace sdk + namespace exporter { namespace otlp { +struct OtlpHttpExporterOptions; + /** * Factory class for OtlpHttpExporter. */ 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 9f84b2c6a5..962d38d093 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 @@ -6,10 +6,10 @@ #include "opentelemetry/exporters/otlp/otlp_http.h" #include "opentelemetry/exporters/otlp/otlp_environment.h" +#include "opentelemetry/version.h" #include #include -#include #include OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter.h index 035b046b72..8b7a775e8d 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter.h @@ -10,13 +10,21 @@ # include "opentelemetry/exporters/otlp/otlp_environment.h" # include "opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h" +# include "opentelemetry/version.h" # include # include # include -# include OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace trace +{ +class Recordable; +} // namespace trace +} // namespace sdk + namespace exporter { namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_factory.h index 152a394574..98901308c5 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_log_record_exporter_factory.h @@ -4,17 +4,26 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW -# include "opentelemetry/exporters/otlp/otlp_http_log_record_exporter_options.h" -# include "opentelemetry/sdk/logs/exporter.h" - # include +# include "opentelemetry/version.h" + OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace logs +{ +class LogRecordExporter; +} // namespace logs +} // namespace sdk + namespace exporter { namespace otlp { +class OtlpHttpLogRecordExporterOptions; + /** * Factory class for OtlpHttpLogRecordExporter. */ 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 37f97e8232..e9559b5e61 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 @@ -7,10 +7,10 @@ # include "opentelemetry/exporters/otlp/otlp_environment.h" # include "opentelemetry/exporters/otlp/otlp_http.h" # include "opentelemetry/sdk/logs/exporter.h" +# include "opentelemetry/version.h" # include # include -# include # include OPENTELEMETRY_BEGIN_NAMESPACE 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 d09d7f525c..33727e8d09 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 @@ -6,20 +6,22 @@ #include "opentelemetry/sdk/metrics/push_metric_exporter.h" #include "opentelemetry/exporters/otlp/otlp_environment.h" -#include "opentelemetry/exporters/otlp/otlp_http_client.h" #include "opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h" #include "opentelemetry/exporters/otlp/otlp_metric_utils.h" +#include "opentelemetry/version.h" #include #include #include -#include OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter { namespace otlp { + +class OtlpHttpClient; + /** * The OTLP exporter exports metrics data in OpenTelemetry Protocol (OTLP) format in HTTP. */ diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_factory.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_factory.h index 2fe0476575..a61a6eae3c 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_factory.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_metric_exporter_factory.h @@ -3,17 +3,26 @@ #pragma once -#include "opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h" -#include "opentelemetry/sdk/metrics/push_metric_exporter.h" - #include +#include "opentelemetry/version.h" + OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace metrics +{ +class PushMetricExporter; +} // namespace metrics +} // namespace sdk + namespace exporter { namespace otlp { +struct OtlpHttpMetricExporterOptions; + /** * Factory class for OtlpHttpMetricExporter. */ 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 140b5b886b..df062463a1 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 @@ -6,10 +6,10 @@ #include "opentelemetry/exporters/otlp/otlp_environment.h" #include "opentelemetry/exporters/otlp/otlp_http.h" #include "opentelemetry/sdk/metrics/instruments.h" +#include "opentelemetry/version.h" #include #include -#include #include OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_log_recordable.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_log_recordable.h index cef1b3ef8f..61a9d2efb1 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_log_recordable.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_log_recordable.h @@ -9,17 +9,24 @@ # include "opentelemetry/proto/logs/v1/logs.pb.h" # include "opentelemetry/proto/resource/v1/resource.pb.h" -# include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" # include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" // clang-format on # include "opentelemetry/common/macros.h" # include "opentelemetry/sdk/common/attribute_utils.h" -# include "opentelemetry/sdk/logs/read_write_log_record.h" # include "opentelemetry/sdk/logs/recordable.h" +# include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace instrumentationscope +{ +class InstrumentationScope; +} // namespace instrumentationscope +} // namespace sdk + namespace exporter { namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h index 8efbad2453..15e3406d5a 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h @@ -12,6 +12,7 @@ #include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" #include "opentelemetry/sdk/metrics/export/metric_producer.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h index dc43827641..1771dd9b9a 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h @@ -12,10 +12,17 @@ #include "opentelemetry/common/attribute_value.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/sdk/common/attribute_utils.h" -#include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace resource +{ +class Resource; +} // namespace resource +} // namespace sdk + namespace exporter { namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable_utils.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable_utils.h index 1ad9514aa9..639db4a20c 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable_utils.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable_utils.h @@ -5,7 +5,7 @@ #include -#include "opentelemetry/nostd/unique_ptr.h" +#include "opentelemetry/nostd/span.h" #include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" @@ -13,14 +13,21 @@ #include "opentelemetry/proto/collector/trace/v1/trace_service.pb.h" #include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" - -#include "opentelemetry/sdk/trace/recordable.h" - -#ifdef ENABLE_LOGS_PREVIEW -# include "opentelemetry/sdk/logs/recordable.h" -#endif +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace logs +{ +class Recordable; +} // namespace logs +namespace trace +{ +class Recordable; +} // namespace trace +} // namespace sdk + namespace exporter { namespace otlp diff --git a/exporters/otlp/src/otlp_environment.cc b/exporters/otlp/src/otlp_environment.cc index 8bcb2c3aa0..54ada6b386 100644 --- a/exporters/otlp/src/otlp_environment.cc +++ b/exporters/otlp/src/otlp_environment.cc @@ -4,11 +4,12 @@ #include "opentelemetry/exporters/otlp/otlp_environment.h" #include "opentelemetry/sdk/common/env_variables.h" -#include "opentelemetry/sdk/version/version.h" #include "opentelemetry/sdk/common/global_log_handler.h" #include "opentelemetry/sdk_config.h" +#include + namespace nostd = opentelemetry::nostd; namespace sdk_common = opentelemetry::sdk::common; diff --git a/exporters/otlp/src/otlp_grpc_client.cc b/exporters/otlp/src/otlp_grpc_client.cc index 158f276000..3ca4d2bd22 100644 --- a/exporters/otlp/src/otlp_grpc_client.cc +++ b/exporters/otlp/src/otlp_grpc_client.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_grpc_client.h" +#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" #if defined(HAVE_GSL) # include @@ -11,7 +12,6 @@ #include #include -#include #include #include "opentelemetry/ext/http/common/url_parser.h" diff --git a/exporters/otlp/src/otlp_grpc_log_record_exporter.cc b/exporters/otlp/src/otlp_grpc_log_record_exporter.cc index 1873ac8ad7..1d63fc36a4 100644 --- a/exporters/otlp/src/otlp_grpc_log_record_exporter.cc +++ b/exporters/otlp/src/otlp_grpc_log_record_exporter.cc @@ -14,10 +14,7 @@ // clang-format off # include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" - # include "opentelemetry/proto/collector/logs/v1/logs_service.pb.h" -# include "opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h" - # include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" // clang-format on diff --git a/exporters/otlp/src/otlp_http_exporter.cc b/exporters/otlp/src/otlp_http_exporter.cc index 852fee7e1f..fbab7c0c30 100644 --- a/exporters/otlp/src/otlp_http_exporter.cc +++ b/exporters/otlp/src/otlp_http_exporter.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_http_exporter.h" +#include "opentelemetry/exporters/otlp/otlp_http_client.h" #include "opentelemetry/exporters/otlp/otlp_recordable.h" #include "opentelemetry/exporters/otlp/otlp_recordable_utils.h" diff --git a/exporters/otlp/src/otlp_http_metric_exporter.cc b/exporters/otlp/src/otlp_http_metric_exporter.cc index a13c1763fe..ddf8bfce13 100644 --- a/exporters/otlp/src/otlp_http_metric_exporter.cc +++ b/exporters/otlp/src/otlp_http_metric_exporter.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_http_metric_exporter.h" +#include "opentelemetry/exporters/otlp/otlp_http_client.h" #include "opentelemetry/exporters/otlp/otlp_metric_utils.h" #include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" diff --git a/exporters/otlp/src/otlp_log_recordable.cc b/exporters/otlp/src/otlp_log_recordable.cc index cc4d712795..08e41480cb 100644 --- a/exporters/otlp/src/otlp_log_recordable.cc +++ b/exporters/otlp/src/otlp_log_recordable.cc @@ -20,7 +20,10 @@ namespace otlp const opentelemetry::sdk::resource::Resource &OtlpLogRecordable::GetResource() const noexcept { - OPENTELEMETRY_LIKELY_IF(nullptr != resource_) { return *resource_; } + OPENTELEMETRY_LIKELY_IF(nullptr != resource_) + { + return *resource_; + } return opentelemetry::sdk::logs::ReadableLogRecord::GetDefaultResource(); } @@ -28,7 +31,10 @@ const opentelemetry::sdk::resource::Resource &OtlpLogRecordable::GetResource() c const opentelemetry::sdk::instrumentationscope::InstrumentationScope & OtlpLogRecordable::GetInstrumentationScope() const noexcept { - OPENTELEMETRY_LIKELY_IF(nullptr != instrumentation_scope_) { return *instrumentation_scope_; } + OPENTELEMETRY_LIKELY_IF(nullptr != instrumentation_scope_) + { + return *instrumentation_scope_; + } return opentelemetry::sdk::logs::ReadableLogRecord::GetDefaultInstrumentationScope(); } diff --git a/exporters/otlp/src/otlp_populate_attribute_utils.cc b/exporters/otlp/src/otlp_populate_attribute_utils.cc index d86953506c..f90158045e 100644 --- a/exporters/otlp/src/otlp_populate_attribute_utils.cc +++ b/exporters/otlp/src/otlp_populate_attribute_utils.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h" +#include "opentelemetry/sdk/resource/resource.h" namespace nostd = opentelemetry::nostd; diff --git a/exporters/otlp/src/otlp_recordable.cc b/exporters/otlp/src/otlp_recordable.cc index e0b181a452..ec871c206e 100644 --- a/exporters/otlp/src/otlp_recordable.cc +++ b/exporters/otlp/src/otlp_recordable.cc @@ -5,6 +5,8 @@ #include "opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h" #include "opentelemetry/exporters/otlp/otlp_recordable_utils.h" +#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" +#include "opentelemetry/sdk/resource/resource.h" namespace nostd = opentelemetry::nostd; diff --git a/exporters/otlp/src/otlp_recordable_utils.cc b/exporters/otlp/src/otlp_recordable_utils.cc index 81859ba070..d7d047a943 100644 --- a/exporters/otlp/src/otlp_recordable_utils.cc +++ b/exporters/otlp/src/otlp_recordable_utils.cc @@ -13,6 +13,7 @@ #include "opentelemetry/exporters/otlp/otlp_log_recordable.h" #include "opentelemetry/exporters/otlp/otlp_populate_attribute_utils.h" #include "opentelemetry/exporters/otlp/otlp_recordable.h" +#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" #include #include diff --git a/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc b/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc index c383cc85ed..cb2f6ff806 100644 --- a/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_grpc_exporter_factory_test.cc @@ -5,6 +5,7 @@ #include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h" #include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" +#include "opentelemetry/sdk/trace/exporter.h" /* Make sure OtlpGrpcExporterFactory does not require, diff --git a/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc b/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc index 5219d22d14..9252d02a28 100644 --- a/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_grpc_log_record_exporter_factory_test.cc @@ -7,6 +7,7 @@ # include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h" # include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h" +# include "opentelemetry/sdk/logs/exporter.h" /* Make sure OtlpGrpcLogRecordExporterFactory does not require, diff --git a/exporters/otlp/test/otlp_grpc_log_record_exporter_test.cc b/exporters/otlp/test/otlp_grpc_log_record_exporter_test.cc index 450bebc218..a60008cc23 100644 --- a/exporters/otlp/test/otlp_grpc_log_record_exporter_test.cc +++ b/exporters/otlp/test/otlp_grpc_log_record_exporter_test.cc @@ -17,6 +17,7 @@ # include "opentelemetry/sdk/logs/batch_log_record_processor.h" # include "opentelemetry/sdk/logs/exporter.h" # include "opentelemetry/sdk/logs/logger_provider.h" +# include "opentelemetry/sdk/logs/recordable.h" # include "opentelemetry/sdk/resource/resource.h" # include diff --git a/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc b/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc index b1d473e8da..46c004c617 100644 --- a/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_grpc_metric_exporter_factory_test.cc @@ -5,6 +5,8 @@ #include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h" #include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_options.h" +#include "opentelemetry/sdk/metrics/push_metric_exporter.h" +#include "opentelemetry/sdk/resource/resource.h" /* Make sure OtlpGrpcMetricExporterFactory does not require, diff --git a/exporters/otlp/test/otlp_http_exporter_factory_test.cc b/exporters/otlp/test/otlp_http_exporter_factory_test.cc index fd578a65c1..b243198854 100644 --- a/exporters/otlp/test/otlp_http_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_http_exporter_factory_test.cc @@ -5,6 +5,7 @@ #include "opentelemetry/exporters/otlp/otlp_http_exporter_factory.h" #include "opentelemetry/exporters/otlp/otlp_http_exporter_options.h" +#include "opentelemetry/sdk/trace/exporter.h" /* Make sure OtlpHttpExporterFactory does not require, diff --git a/exporters/otlp/test/otlp_http_exporter_test.cc b/exporters/otlp/test/otlp_http_exporter_test.cc index 71e3496a92..79a036ae09 100644 --- a/exporters/otlp/test/otlp_http_exporter_test.cc +++ b/exporters/otlp/test/otlp_http_exporter_test.cc @@ -7,6 +7,7 @@ # include # include "opentelemetry/exporters/otlp/otlp_http_exporter.h" +# include "opentelemetry/exporters/otlp/otlp_http_client.h" # include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" @@ -17,6 +18,7 @@ # include "opentelemetry/ext/http/client/http_client_factory.h" # include "opentelemetry/ext/http/server/http_server.h" # include "opentelemetry/sdk/trace/batch_span_processor.h" +# include "opentelemetry/sdk/trace/batch_span_processor_options.h" # include "opentelemetry/sdk/trace/tracer_provider.h" # include "opentelemetry/test_common/ext/http/client/nosend/http_client_nosend.h" # include "opentelemetry/trace/provider.h" diff --git a/exporters/otlp/test/otlp_http_log_record_exporter_test.cc b/exporters/otlp/test/otlp_http_log_record_exporter_test.cc index 459d14a8e3..08b2b73abc 100644 --- a/exporters/otlp/test/otlp_http_log_record_exporter_test.cc +++ b/exporters/otlp/test/otlp_http_log_record_exporter_test.cc @@ -124,7 +124,7 @@ class OtlpHttpLogRecordExporterTestPeer : public ::testing::Test char trace_id_hex[2 * opentelemetry::trace::TraceId::kSize] = {0}; opentelemetry::trace::TraceId trace_id{trace_id_bin}; uint8_t span_id_bin[opentelemetry::trace::SpanId::kSize] = {'7', '6', '5', '4', - '3', '2', '1', '0'}; + '3', '2', '1', '0'}; char span_id_hex[2 * opentelemetry::trace::SpanId::kSize] = {0}; opentelemetry::trace::SpanId span_id{span_id_bin}; @@ -241,7 +241,7 @@ class OtlpHttpLogRecordExporterTestPeer : public ::testing::Test char trace_id_hex[2 * opentelemetry::trace::TraceId::kSize] = {0}; opentelemetry::trace::TraceId trace_id{trace_id_bin}; uint8_t span_id_bin[opentelemetry::trace::SpanId::kSize] = {'7', '6', '5', '4', - '3', '2', '1', '0'}; + '3', '2', '1', '0'}; char span_id_hex[2 * opentelemetry::trace::SpanId::kSize] = {0}; opentelemetry::trace::SpanId span_id{span_id_bin}; diff --git a/exporters/otlp/test/otlp_http_metric_exporter_factory_test.cc b/exporters/otlp/test/otlp_http_metric_exporter_factory_test.cc index 3158300548..d05bbebd49 100644 --- a/exporters/otlp/test/otlp_http_metric_exporter_factory_test.cc +++ b/exporters/otlp/test/otlp_http_metric_exporter_factory_test.cc @@ -5,6 +5,7 @@ #include "opentelemetry/exporters/otlp/otlp_http_metric_exporter_factory.h" #include "opentelemetry/exporters/otlp/otlp_http_metric_exporter_options.h" +#include "opentelemetry/sdk/metrics/push_metric_exporter.h" /* Make sure OtlpHttpExporterFactory does not require, diff --git a/exporters/otlp/test/otlp_http_metric_exporter_test.cc b/exporters/otlp/test/otlp_http_metric_exporter_test.cc index c753589047..73bc5b5597 100644 --- a/exporters/otlp/test/otlp_http_metric_exporter_test.cc +++ b/exporters/otlp/test/otlp_http_metric_exporter_test.cc @@ -6,6 +6,7 @@ #include #include "opentelemetry/exporters/otlp/otlp_http_metric_exporter.h" +#include "opentelemetry/exporters/otlp/otlp_http_client.h" #include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" @@ -123,7 +124,7 @@ class OtlpHttpMetricExporterTestPeer : public ::testing::Test opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.5.0"); + "library_name", "1.5.0"); opentelemetry::sdk::metrics::MetricData metric_data{ opentelemetry::sdk::metrics::InstrumentDescriptor{ "metrics_library_name", "metrics_description", "metrics_unit", @@ -204,7 +205,7 @@ class OtlpHttpMetricExporterTestPeer : public ::testing::Test opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.5.0"); + "library_name", "1.5.0"); opentelemetry::sdk::metrics::MetricData metric_data{ opentelemetry::sdk::metrics::InstrumentDescriptor{ "metrics_library_name", "metrics_description", "metrics_unit", @@ -314,7 +315,7 @@ class OtlpHttpMetricExporterTestPeer : public ::testing::Test opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.5.0"); + "library_name", "1.5.0"); data.scope_metric_data_ = std::vector{ {scope.get(), std::vector{metric_data}}}; @@ -385,7 +386,7 @@ class OtlpHttpMetricExporterTestPeer : public ::testing::Test opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.5.0"); + "library_name", "1.5.0"); opentelemetry::sdk::metrics::LastValuePointData last_value_point_data{}; last_value_point_data.value_ = 10.0; last_value_point_data.is_lastvalue_valid_ = true; @@ -509,7 +510,7 @@ class OtlpHttpMetricExporterTestPeer : public ::testing::Test opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.5.0"); + "library_name", "1.5.0"); data.scope_metric_data_ = std::vector{ {scope.get(), std::vector{metric_data}}}; @@ -615,7 +616,7 @@ class OtlpHttpMetricExporterTestPeer : public ::testing::Test opentelemetry::sdk::resource::ResourceAttributes{}); data.resource_ = &resource; auto scope = opentelemetry::sdk::instrumentationscope::InstrumentationScope::Create( - "library_name", "1.5.0"); + "library_name", "1.5.0"); opentelemetry::sdk::metrics::HistogramPointData histogram_point_data{}; histogram_point_data.boundaries_ = {10.1, 20.2, 30.2}; diff --git a/exporters/otlp/test/otlp_recordable_test.cc b/exporters/otlp/test/otlp_recordable_test.cc index abad2991b7..d8bc34320c 100644 --- a/exporters/otlp/test/otlp_recordable_test.cc +++ b/exporters/otlp/test/otlp_recordable_test.cc @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_recordable.h" +#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" +#include "opentelemetry/sdk/resource/resource.h" #if defined(__GNUC__) // GCC raises -Wsuggest-override warnings on GTest, @@ -20,6 +22,7 @@ namespace trace_api = opentelemetry::trace; namespace trace_sdk = opentelemetry::sdk::trace; namespace resource = opentelemetry::sdk::resource; namespace proto = opentelemetry::proto; +namespace instr_sdk = opentelemetry::sdk::instrumentationscope; namespace trace_sdk_2 = opentelemetry::sdk::trace; @@ -69,7 +72,7 @@ TEST(OtlpRecordable, SetSpanKind) TEST(OtlpRecordable, SetInstrumentationScope) { OtlpRecordable rec; - auto inst_lib = trace_sdk::InstrumentationScope::Create("test", "v1"); + auto inst_lib = instr_sdk::InstrumentationScope::Create("test", "v1"); rec.SetInstrumentationScope(*inst_lib); auto proto_instr_libr = rec.GetProtoInstrumentationScope(); EXPECT_EQ(proto_instr_libr.name(), inst_lib->GetName()); @@ -80,7 +83,7 @@ TEST(OtlpRecordable, SetInstrumentationLibraryWithSchemaURL) { OtlpRecordable rec; const std::string expected_schema_url{"https://opentelemetry.io/schemas/1.11.0"}; - auto inst_lib = trace_sdk::InstrumentationScope::Create("test", "v1", expected_schema_url); + auto inst_lib = instr_sdk::InstrumentationScope::Create("test", "v1", expected_schema_url); rec.SetInstrumentationScope(*inst_lib); EXPECT_EQ(expected_schema_url, rec.GetInstrumentationLibrarySchemaURL()); } diff --git a/exporters/zipkin/src/recordable.cc b/exporters/zipkin/src/recordable.cc index 96b486e51e..07fcd671d6 100644 --- a/exporters/zipkin/src/recordable.cc +++ b/exporters/zipkin/src/recordable.cc @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/zipkin/recordable.h" +#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" +#include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/sdk/resource/semantic_conventions.h" #include diff --git a/exporters/zipkin/test/zipkin_exporter_test.cc b/exporters/zipkin/test/zipkin_exporter_test.cc index af518d1655..da93ac3af6 100644 --- a/exporters/zipkin/test/zipkin_exporter_test.cc +++ b/exporters/zipkin/test/zipkin_exporter_test.cc @@ -8,6 +8,7 @@ # include "opentelemetry/ext/http/client/curl/http_client_curl.h" # include "opentelemetry/ext/http/server/http_server.h" # include "opentelemetry/sdk/trace/batch_span_processor.h" +# include "opentelemetry/sdk/trace/batch_span_processor_options.h" # include "opentelemetry/sdk/trace/tracer_provider.h" # include "opentelemetry/trace/provider.h" diff --git a/exporters/zipkin/test/zipkin_recordable_test.cc b/exporters/zipkin/test/zipkin_recordable_test.cc index 630ca332f0..e37393ada7 100644 --- a/exporters/zipkin/test/zipkin_recordable_test.cc +++ b/exporters/zipkin/test/zipkin_recordable_test.cc @@ -116,7 +116,7 @@ TEST(ZipkinSpanRecordable, SetInstrumentationScope) const char *library_name = "otel-cpp"; const char *library_version = "0.5.0"; json j_span = { - {"tags", {{"otel.library.name", library_name}, {"otel.library.version", library_version}}}}; + {"tags", {{"otel.library.name", library_name}, {"otel.library.version", library_version}}}}; zipkin::Recordable rec; rec.SetInstrumentationScope(*InstrumentationScope::Create(library_name, library_version)); diff --git a/ext/include/opentelemetry/ext/http/client/curl/http_client_curl.h b/ext/include/opentelemetry/ext/http/client/curl/http_client_curl.h index 43992bbdf5..8969622209 100644 --- a/ext/include/opentelemetry/ext/http/client/curl/http_client_curl.h +++ b/ext/include/opentelemetry/ext/http/client/curl/http_client_curl.h @@ -37,7 +37,7 @@ class HttpCurlGlobalInitializer HttpCurlGlobalInitializer(HttpCurlGlobalInitializer &&) = delete; HttpCurlGlobalInitializer &operator=(const HttpCurlGlobalInitializer &) = delete; - HttpCurlGlobalInitializer &operator=(HttpCurlGlobalInitializer &&) = delete; + HttpCurlGlobalInitializer &operator=(HttpCurlGlobalInitializer &&) = delete; HttpCurlGlobalInitializer(); @@ -179,19 +179,34 @@ class Session : public opentelemetry::ext::http::client::Session, const std::string &GetBaseUri() const { return host_; } #ifdef ENABLE_TEST - std::shared_ptr GetRequest() { return http_request_; } + std::shared_ptr GetRequest() + { + return http_request_; + } #endif - inline HttpClient &GetHttpClient() noexcept { return http_client_; } - inline const HttpClient &GetHttpClient() const noexcept { return http_client_; } + inline HttpClient &GetHttpClient() noexcept + { + return http_client_; + } + inline const HttpClient &GetHttpClient() const noexcept + { + return http_client_; + } - inline uint64_t GetSessionId() const noexcept { return session_id_; } + inline uint64_t GetSessionId() const noexcept + { + return session_id_; + } inline const std::unique_ptr &GetOperation() const noexcept { return curl_operation_; } - inline std::unique_ptr &GetOperation() noexcept { return curl_operation_; } + inline std::unique_ptr &GetOperation() noexcept + { + return curl_operation_; + } /** * Finish and cleanup the operation.It will remove curl easy handle in it from HttpClient diff --git a/ext/include/opentelemetry/ext/http/client/curl/http_operation_curl.h b/ext/include/opentelemetry/ext/http/client/curl/http_operation_curl.h index eb3fd186df..45840e25d8 100644 --- a/ext/include/opentelemetry/ext/http/client/curl/http_operation_curl.h +++ b/ext/include/opentelemetry/ext/http/client/curl/http_operation_curl.h @@ -69,7 +69,7 @@ struct HttpCurlEasyResource return *this; } - HttpCurlEasyResource(const HttpCurlEasyResource &other) = delete; + HttpCurlEasyResource(const HttpCurlEasyResource &other) = delete; HttpCurlEasyResource &operator=(const HttpCurlEasyResource &other) = delete; }; @@ -181,7 +181,10 @@ class HttpOperation */ CURLcode SendAsync(Session *session, std::function callback = nullptr); - inline void SendSync() { Send(); } + inline void SendSync() + { + Send(); + } /** * Get HTTP response code. This function returns 0. @@ -191,17 +194,26 @@ class HttpOperation return static_cast(response_code_); } - CURLcode GetLastResultCode() { return last_curl_result_; } + CURLcode GetLastResultCode() + { + return last_curl_result_; + } /** * Get last session state. */ - opentelemetry::ext::http::client::SessionState GetSessionState() { return session_state_; } + opentelemetry::ext::http::client::SessionState GetSessionState() + { + return session_state_; + } /** * Get whether or not response was programmatically aborted */ - bool WasAborted() { return is_aborted_.load(std::memory_order_acquire); } + bool WasAborted() + { + return is_aborted_.load(std::memory_order_acquire); + } /** * Return a copy of resposne headers @@ -215,14 +227,20 @@ class HttpOperation * * @return */ - inline const std::vector &GetResponseBody() const noexcept { return response_body_; } + inline const std::vector &GetResponseBody() const noexcept + { + return response_body_; + } /** * Return a raw copy of response headers+body * * @return */ - inline const std::vector &GetRawResponse() const noexcept { return raw_response_; } + inline const std::vector &GetRawResponse() const noexcept + { + return raw_response_; + } /** * Release memory allocated for response @@ -242,7 +260,10 @@ class HttpOperation */ void PerformCurlMessage(CURLcode code); - inline CURL *GetCurlEasyHandle() noexcept { return curl_resource_.easy_handle; } + inline CURL *GetCurlEasyHandle() noexcept + { + return curl_resource_.easy_handle; + } private: std::atomic is_aborted_; // Set to 'true' when async callback is aborted diff --git a/ext/include/opentelemetry/ext/http/server/socket_tools.h b/ext/include/opentelemetry/ext/http/server/socket_tools.h index bb6302bac8..075c87af8d 100644 --- a/ext/include/opentelemetry/ext/http/server/socket_tools.h +++ b/ext/include/opentelemetry/ext/http/server/socket_tools.h @@ -213,9 +213,15 @@ struct SocketAddr SocketAddr &operator=(SocketAddr const &other) = default; - operator sockaddr *() { return &m_data; } + operator sockaddr *() + { + return &m_data; + } - operator const sockaddr *() const { return &m_data; } + operator const sockaddr *() const + { + return &m_data; + } int port() const { @@ -270,19 +276,37 @@ struct Socket Socket(Type sock = Invalid) : m_sock(sock) {} - Socket(int af, int type, int proto) { m_sock = ::socket(af, type, proto); } + Socket(int af, int type, int proto) + { + m_sock = ::socket(af, type, proto); + } ~Socket() {} - operator Socket::Type() const { return m_sock; } + operator Socket::Type() const + { + return m_sock; + } - bool operator==(Socket const &other) const { return (m_sock == other.m_sock); } + bool operator==(Socket const &other) const + { + return (m_sock == other.m_sock); + } - bool operator!=(Socket const &other) const { return (m_sock != other.m_sock); } + bool operator!=(Socket const &other) const + { + return (m_sock != other.m_sock); + } - bool operator<(Socket const &other) const { return (m_sock < other.m_sock); } + bool operator<(Socket const &other) const + { + return (m_sock < other.m_sock); + } - bool invalid() const { return (m_sock == Invalid); } + bool invalid() const + { + return (m_sock == Invalid); + } void setNonBlocking() { diff --git a/ext/include/opentelemetry/ext/zpages/tracez_data.h b/ext/include/opentelemetry/ext/zpages/tracez_data.h index 4594fbe057..bf2e186e0e 100644 --- a/ext/include/opentelemetry/ext/zpages/tracez_data.h +++ b/ext/include/opentelemetry/ext/zpages/tracez_data.h @@ -4,7 +4,6 @@ #pragma once #include -#include #include #include diff --git a/ext/test/w3c_tracecontext_test/main.cc b/ext/test/w3c_tracecontext_test/main.cc index da8aed751c..5c79c0d640 100644 --- a/ext/test/w3c_tracecontext_test/main.cc +++ b/ext/test/w3c_tracecontext_test/main.cc @@ -6,6 +6,7 @@ #include "opentelemetry/ext/http/client/curl/http_client_curl.h" #include "opentelemetry/ext/http/server/http_server.h" #include "opentelemetry/sdk/trace/simple_processor.h" +#include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/sdk/trace/tracer_provider.h" #include "opentelemetry/trace/propagation/http_trace_context.h" #include "opentelemetry/trace/provider.h" diff --git a/opentracing-shim/test/shim_utils_test.cc b/opentracing-shim/test/shim_utils_test.cc index aa2316f2d2..d053273984 100644 --- a/opentracing-shim/test/shim_utils_test.cc +++ b/opentracing-shim/test/shim_utils_test.cc @@ -141,8 +141,8 @@ TEST(ShimUtilsTest, MakeOptionsShim_FirstChildOf) options.start_system_timestamp = opentracing::SystemTime::time_point::clock::now(); options.start_steady_timestamp = opentracing::SteadyTime::time_point::clock::now(); options.references = {{opentracing::SpanReferenceType::FollowsFromRef, nullptr}, - {opentracing::SpanReferenceType::ChildOfRef, span_context}, - {opentracing::SpanReferenceType::ChildOfRef, nullptr}}; + {opentracing::SpanReferenceType::ChildOfRef, span_context}, + {opentracing::SpanReferenceType::ChildOfRef, nullptr}}; auto options_shim = shim::utils::makeOptionsShim(options); ASSERT_EQ(options_shim.start_system_time, @@ -162,7 +162,7 @@ TEST(ShimUtilsTest, MakeOptionsShim_FirstInList) options.start_system_timestamp = opentracing::SystemTime::time_point::clock::now(); options.start_steady_timestamp = opentracing::SteadyTime::time_point::clock::now(); options.references = {{opentracing::SpanReferenceType::FollowsFromRef, span_context}, - {opentracing::SpanReferenceType::FollowsFromRef, nullptr}}; + {opentracing::SpanReferenceType::FollowsFromRef, nullptr}}; auto options_shim = shim::utils::makeOptionsShim(options); ASSERT_EQ(options_shim.start_system_time, diff --git a/sdk/include/opentelemetry/sdk/common/empty_attributes.h b/sdk/include/opentelemetry/sdk/common/empty_attributes.h index 4f740bf10e..4de228e72c 100644 --- a/sdk/include/opentelemetry/sdk/common/empty_attributes.h +++ b/sdk/include/opentelemetry/sdk/common/empty_attributes.h @@ -7,7 +7,6 @@ #include "opentelemetry/common/macros.h" #include -#include #include #include diff --git a/sdk/include/opentelemetry/sdk/common/global_log_handler.h b/sdk/include/opentelemetry/sdk/common/global_log_handler.h index 56103d3818..74dd90ccc6 100644 --- a/sdk/include/opentelemetry/sdk/common/global_log_handler.h +++ b/sdk/include/opentelemetry/sdk/common/global_log_handler.h @@ -3,7 +3,6 @@ #pragma once -#include #include #include diff --git a/sdk/include/opentelemetry/sdk/instrumentationscope/instrumentation_scope.h b/sdk/include/opentelemetry/sdk/instrumentationscope/instrumentation_scope.h index 5d75e61f75..7a0fca9db1 100644 --- a/sdk/include/opentelemetry/sdk/instrumentationscope/instrumentation_scope.h +++ b/sdk/include/opentelemetry/sdk/instrumentationscope/instrumentation_scope.h @@ -8,7 +8,7 @@ #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/nostd/unique_ptr.h" #include "opentelemetry/sdk/common/attribute_utils.h" -#include "opentelemetry/version.h" +#include "opentelemetry/sdk/version/version.h" #include #include diff --git a/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor_factory.h b/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor_factory.h index 55adc68f72..37ddc68e81 100644 --- a/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor_factory.h @@ -7,9 +7,7 @@ # include -# include "opentelemetry/sdk/logs/batch_log_record_processor_options.h" -# include "opentelemetry/sdk/logs/exporter.h" -# include "opentelemetry/sdk/logs/processor.h" +# include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -18,6 +16,10 @@ namespace sdk namespace logs { +struct BatchLogRecordProcessorOptions; +class LogRecordExporter; +class LogRecordProcessor; + /** * Factory class for BatchLogRecordProcessor. */ diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h index ba12d94600..7b1d27e0ed 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h @@ -5,9 +5,6 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/logs/event_logger_provider.h" -# include "opentelemetry/logs/logger.h" -# include "opentelemetry/nostd/shared_ptr.h" -# include "opentelemetry/sdk/logs/logger.h" // Define the maximum number of loggers that are allowed to be registered to the loggerprovider. // TODO: Add link to logging spec once this is added to it @@ -19,6 +16,7 @@ namespace sdk namespace logs { class Logger; +class EventLogger; class EventLoggerProvider final : public opentelemetry::logs::EventLoggerProvider { diff --git a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h index 06aa1c4f2e..a563e9b1a3 100644 --- a/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h @@ -5,10 +5,16 @@ #ifdef ENABLE_LOGS_PREVIEW -# include "opentelemetry/logs/event_logger_provider.h" -# include "opentelemetry/nostd/shared_ptr.h" +# include + +# include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace logs +{ +class EventLoggerProvider; +} // namespace logs + namespace sdk { namespace logs diff --git a/sdk/include/opentelemetry/sdk/logs/exporter.h b/sdk/include/opentelemetry/sdk/logs/exporter.h index 069fd8784c..f33b8a4da0 100644 --- a/sdk/include/opentelemetry/sdk/logs/exporter.h +++ b/sdk/include/opentelemetry/sdk/logs/exporter.h @@ -4,19 +4,20 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW +# include # include -# include # include "opentelemetry/nostd/span.h" # include "opentelemetry/sdk/common/exporter_utils.h" -# include "opentelemetry/sdk/logs/processor.h" -# include "opentelemetry/sdk/logs/recordable.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { namespace logs { + +class Recordable; + /** * LogRecordExporter defines the interface that log exporters must implement. */ diff --git a/sdk/include/opentelemetry/sdk/logs/logger.h b/sdk/include/opentelemetry/sdk/logs/logger.h index ece83a8b57..53df2539e3 100644 --- a/sdk/include/opentelemetry/sdk/logs/logger.h +++ b/sdk/include/opentelemetry/sdk/logs/logger.h @@ -5,7 +5,6 @@ #ifdef ENABLE_LOGS_PREVIEW # include -# include # include "opentelemetry/common/macros.h" # include "opentelemetry/logs/logger.h" diff --git a/sdk/include/opentelemetry/sdk/logs/logger_context.h b/sdk/include/opentelemetry/sdk/logs/logger_context.h index fe6db6822a..801666f7ba 100644 --- a/sdk/include/opentelemetry/sdk/logs/logger_context.h +++ b/sdk/include/opentelemetry/sdk/logs/logger_context.h @@ -5,9 +5,10 @@ #ifdef ENABLE_LOGS_PREVIEW +# include # include +# include -# include "opentelemetry/sdk/logs/processor.h" # include "opentelemetry/sdk/resource/resource.h" # include "opentelemetry/version.h" @@ -16,6 +17,9 @@ namespace sdk { namespace logs { + +class LogRecordProcessor; + /** * A class which stores the LoggerContext context. * diff --git a/sdk/include/opentelemetry/sdk/logs/logger_context_factory.h b/sdk/include/opentelemetry/sdk/logs/logger_context_factory.h index 377094d5db..825b586f30 100644 --- a/sdk/include/opentelemetry/sdk/logs/logger_context_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/logger_context_factory.h @@ -6,18 +6,24 @@ #ifdef ENABLE_LOGS_PREVIEW # include +# include -# include "opentelemetry/sdk/logs/logger_context.h" -# include "opentelemetry/sdk/logs/processor.h" -# include "opentelemetry/sdk/resource/resource.h" # include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { +namespace resource +{ +class Resource; +} // namespace resource + namespace logs { +class LoggerContext; +class LogRecordProcessor; + /** * Factory class for LoggerContext. */ diff --git a/sdk/include/opentelemetry/sdk/logs/logger_provider_factory.h b/sdk/include/opentelemetry/sdk/logs/logger_provider_factory.h index 0795129df3..0599ebae90 100644 --- a/sdk/include/opentelemetry/sdk/logs/logger_provider_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/logger_provider_factory.h @@ -8,19 +8,27 @@ # include # include -# include "opentelemetry/logs/logger_provider.h" -# include "opentelemetry/nostd/shared_ptr.h" -# include "opentelemetry/sdk/common/atomic_shared_ptr.h" -# include "opentelemetry/sdk/logs/logger.h" -# include "opentelemetry/sdk/logs/logger_context.h" -# include "opentelemetry/sdk/logs/processor.h" +# include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace logs +{ +class LoggerProvider; +} // namespace logs + namespace sdk { +namespace resource +{ +class Resource; +} // namespace resource + namespace logs { +class LoggerContext; +class LogRecordProcessor; + /** * Factory class for LoggerProvider. */ diff --git a/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor_factory.h b/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor_factory.h index c91cad52ff..db4beb5c7c 100644 --- a/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor_factory.h +++ b/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor_factory.h @@ -8,7 +8,7 @@ # include # include -# include "opentelemetry/sdk/logs/processor.h" +# include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -16,6 +16,8 @@ namespace sdk namespace logs { +class LogRecordProcessor; + /** * Factory class for MultiLogRecordProcessor. */ diff --git a/sdk/include/opentelemetry/sdk/logs/multi_recordable.h b/sdk/include/opentelemetry/sdk/logs/multi_recordable.h index 8bbc2ae200..6d79544c83 100644 --- a/sdk/include/opentelemetry/sdk/logs/multi_recordable.h +++ b/sdk/include/opentelemetry/sdk/logs/multi_recordable.h @@ -10,7 +10,6 @@ # include # include "opentelemetry/common/macros.h" -# include "opentelemetry/sdk/logs/processor.h" # include "opentelemetry/sdk/logs/recordable.h" # include "opentelemetry/sdk/resource/resource.h" # include "opentelemetry/version.h" @@ -20,6 +19,9 @@ namespace sdk { namespace logs { + +class LogRecordProcessor; + class MultiRecordable final : public Recordable { public: diff --git a/sdk/include/opentelemetry/sdk/logs/processor.h b/sdk/include/opentelemetry/sdk/logs/processor.h index 97f823a25b..b57a107a60 100644 --- a/sdk/include/opentelemetry/sdk/logs/processor.h +++ b/sdk/include/opentelemetry/sdk/logs/processor.h @@ -7,14 +7,16 @@ # include # include -# include "opentelemetry/nostd/unique_ptr.h" -# include "opentelemetry/sdk/logs/recordable.h" +# include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { namespace logs { + +class Recordable; + /** * The Log Processor is responsible for passing log records * to the configured exporter. diff --git a/sdk/include/opentelemetry/sdk/logs/simple_log_record_processor.h b/sdk/include/opentelemetry/sdk/logs/simple_log_record_processor.h index f3d6bc27c3..2cc385f238 100644 --- a/sdk/include/opentelemetry/sdk/logs/simple_log_record_processor.h +++ b/sdk/include/opentelemetry/sdk/logs/simple_log_record_processor.h @@ -6,7 +6,6 @@ # include # include -# include # include "opentelemetry/common/spin_lock_mutex.h" # include "opentelemetry/sdk/logs/exporter.h" diff --git a/sdk/include/opentelemetry/sdk/metrics/aggregation/aggregation.h b/sdk/include/opentelemetry/sdk/metrics/aggregation/aggregation.h index 361a1cd3b8..5f62c1a6d0 100644 --- a/sdk/include/opentelemetry/sdk/metrics/aggregation/aggregation.h +++ b/sdk/include/opentelemetry/sdk/metrics/aggregation/aggregation.h @@ -3,9 +3,10 @@ #pragma once -#include "opentelemetry/nostd/string_view.h" +#include + #include "opentelemetry/sdk/metrics/data/metric_data.h" -#include "opentelemetry/sdk/metrics/data/point_data.h" + OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/metrics/aggregation/default_aggregation.h b/sdk/include/opentelemetry/sdk/metrics/aggregation/default_aggregation.h index 927c17e968..f42f7b5afe 100644 --- a/sdk/include/opentelemetry/sdk/metrics/aggregation/default_aggregation.h +++ b/sdk/include/opentelemetry/sdk/metrics/aggregation/default_aggregation.h @@ -4,7 +4,7 @@ #pragma once #include -#include "opentelemetry/common/spin_lock_mutex.h" + #include "opentelemetry/sdk/metrics/aggregation/aggregation.h" #include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h" #include "opentelemetry/sdk/metrics/aggregation/drop_aggregation.h" @@ -14,8 +14,6 @@ #include "opentelemetry/sdk/metrics/data/point_data.h" #include "opentelemetry/sdk/metrics/instruments.h" -#include - OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/metrics/aggregation/drop_aggregation.h b/sdk/include/opentelemetry/sdk/metrics/aggregation/drop_aggregation.h index 713ce60b8e..4da04eacf7 100644 --- a/sdk/include/opentelemetry/sdk/metrics/aggregation/drop_aggregation.h +++ b/sdk/include/opentelemetry/sdk/metrics/aggregation/drop_aggregation.h @@ -3,10 +3,10 @@ #pragma once -#include "opentelemetry/common/spin_lock_mutex.h" -#include "opentelemetry/sdk/metrics/aggregation/aggregation.h" +#include -#include +#include "opentelemetry/sdk/metrics/aggregation/aggregation.h" +#include "opentelemetry/sdk/metrics/data/point_data.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h b/sdk/include/opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h index 5d1097d93f..4dc34e0fd9 100644 --- a/sdk/include/opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h +++ b/sdk/include/opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h @@ -4,11 +4,9 @@ #pragma once #include + #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/sdk/metrics/aggregation/aggregation.h" -#include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h" - -#include OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -16,6 +14,8 @@ namespace sdk namespace metrics { +class AggregationConfig; + class LongHistogramAggregation : public Aggregation { public: diff --git a/sdk/include/opentelemetry/sdk/metrics/aggregation/lastvalue_aggregation.h b/sdk/include/opentelemetry/sdk/metrics/aggregation/lastvalue_aggregation.h index 05242e304d..bb7cc78804 100644 --- a/sdk/include/opentelemetry/sdk/metrics/aggregation/lastvalue_aggregation.h +++ b/sdk/include/opentelemetry/sdk/metrics/aggregation/lastvalue_aggregation.h @@ -6,8 +6,6 @@ #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/sdk/metrics/aggregation/aggregation.h" -#include - OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/metrics/aggregation/sum_aggregation.h b/sdk/include/opentelemetry/sdk/metrics/aggregation/sum_aggregation.h index 881854e0c2..19bab07f47 100644 --- a/sdk/include/opentelemetry/sdk/metrics/aggregation/sum_aggregation.h +++ b/sdk/include/opentelemetry/sdk/metrics/aggregation/sum_aggregation.h @@ -3,11 +3,11 @@ #pragma once +#include + #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/sdk/metrics/aggregation/aggregation.h" -#include - OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/metrics/data/point_data.h b/sdk/include/opentelemetry/sdk/metrics/data/point_data.h index 62ba3df1bc..b40d91c46a 100644 --- a/sdk/include/opentelemetry/sdk/metrics/data/point_data.h +++ b/sdk/include/opentelemetry/sdk/metrics/data/point_data.h @@ -24,8 +24,8 @@ class SumPointData { public: // TODO: remove ctors and initializers when GCC<5 stops shipping on Ubuntu - SumPointData(SumPointData &&) = default; - SumPointData(const SumPointData &) = default; + SumPointData(SumPointData &&) = default; + SumPointData(const SumPointData &) = default; SumPointData &operator=(SumPointData &&) = default; SumPointData() = default; @@ -37,8 +37,8 @@ class LastValuePointData { public: // TODO: remove ctors and initializers when GCC<5 stops shipping on Ubuntu - LastValuePointData(LastValuePointData &&) = default; - LastValuePointData(const LastValuePointData &) = default; + LastValuePointData(LastValuePointData &&) = default; + LastValuePointData(const LastValuePointData &) = default; LastValuePointData &operator=(LastValuePointData &&) = default; LastValuePointData() = default; @@ -51,7 +51,7 @@ class HistogramPointData { public: // TODO: remove ctors and initializers when GCC<5 stops shipping on Ubuntu - HistogramPointData(HistogramPointData &&) = default; + HistogramPointData(HistogramPointData &&) = default; HistogramPointData &operator=(HistogramPointData &&) = default; HistogramPointData(const HistogramPointData &) = default; HistogramPointData() = default; @@ -69,9 +69,9 @@ class DropPointData { public: // TODO: remove ctors and initializers when GCC<5 stops shipping on Ubuntu - DropPointData(DropPointData &&) = default; - DropPointData(const DropPointData &) = default; - DropPointData() = default; + DropPointData(DropPointData &&) = default; + DropPointData(const DropPointData &) = default; + DropPointData() = default; DropPointData &operator=(DropPointData &&) = default; }; diff --git a/sdk/include/opentelemetry/sdk/metrics/exemplar/filter.h b/sdk/include/opentelemetry/sdk/metrics/exemplar/filter.h index cfc3439992..daf12b349b 100644 --- a/sdk/include/opentelemetry/sdk/metrics/exemplar/filter.h +++ b/sdk/include/opentelemetry/sdk/metrics/exemplar/filter.h @@ -3,12 +3,23 @@ #pragma once -#include "opentelemetry/context/context.h" -#include "opentelemetry/sdk/common/attribute_utils.h" +#include + +#include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace context +{ +class Context; +} // namespace context + namespace sdk { +namespace common +{ +class OrderedAttributeMap; +} // namespace common + namespace metrics { using MetricAttributes = opentelemetry::sdk::common::OrderedAttributeMap; diff --git a/sdk/include/opentelemetry/sdk/metrics/exemplar/filtered_exemplar_reservoir.h b/sdk/include/opentelemetry/sdk/metrics/exemplar/filtered_exemplar_reservoir.h index 5264c33170..77cf556af4 100644 --- a/sdk/include/opentelemetry/sdk/metrics/exemplar/filtered_exemplar_reservoir.h +++ b/sdk/include/opentelemetry/sdk/metrics/exemplar/filtered_exemplar_reservoir.h @@ -5,9 +5,7 @@ #include #include -#include "opentelemetry/context/context.h" -#include "opentelemetry/nostd/shared_ptr.h" -#include "opentelemetry/sdk/common/attribute_utils.h" + #include "opentelemetry/sdk/metrics/exemplar/filter.h" #include "opentelemetry/sdk/metrics/exemplar/reservoir.h" diff --git a/sdk/include/opentelemetry/sdk/metrics/exemplar/reservoir.h b/sdk/include/opentelemetry/sdk/metrics/exemplar/reservoir.h index ea418b698d..8d12869d98 100644 --- a/sdk/include/opentelemetry/sdk/metrics/exemplar/reservoir.h +++ b/sdk/include/opentelemetry/sdk/metrics/exemplar/reservoir.h @@ -3,14 +3,32 @@ #pragma once +#include #include + #include "opentelemetry/sdk/metrics/data/exemplar_data.h" #include "opentelemetry/sdk/metrics/exemplar/filter.h" #include "opentelemetry/sdk/metrics/exemplar/reservoir_cell_selector.h" OPENTELEMETRY_BEGIN_NAMESPACE + +namespace common +{ +class SystemTimestamp; +} // namespace common + +namespace context +{ +class Context; +} // namespace context + namespace sdk { +namespace common +{ +class OrderedAttributeMap; +} // namespace common + namespace metrics { /** diff --git a/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h b/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h index 82b8c1c474..2439e40a51 100644 --- a/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h +++ b/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h @@ -3,13 +3,19 @@ #pragma once -#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" +#include + +#include "opentelemetry/nostd/function_ref.h" #include "opentelemetry/sdk/metrics/data/metric_data.h" -#include "opentelemetry/sdk/resource/resource.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { +namespace instrumentationscope +{ +class InstrumentationScope; +} // namespace instrumentationscope + namespace metrics { diff --git a/sdk/include/opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader.h b/sdk/include/opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader.h index ecb5cc7e72..f04119038e 100644 --- a/sdk/include/opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader.h +++ b/sdk/include/opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader.h @@ -9,6 +9,7 @@ #include #include #include +#include #include OPENTELEMETRY_BEGIN_NAMESPACE @@ -63,8 +64,11 @@ class PeriodicExportingMetricReader : public MetricReader std::thread worker_thread_; /* Synchronization primitives */ - std::condition_variable cv_; - std::mutex cv_m_; + std::atomic is_force_flush_pending_; + std::atomic is_force_wakeup_background_worker_; + std::atomic is_force_flush_notified_; + std::condition_variable cv_, force_flush_cv_; + std::mutex cv_m_, force_flush_m_; }; } // namespace metrics diff --git a/sdk/include/opentelemetry/sdk/metrics/state/async_metric_storage.h b/sdk/include/opentelemetry/sdk/metrics/state/async_metric_storage.h index aad00bb5cf..af0a37e645 100644 --- a/sdk/include/opentelemetry/sdk/metrics/state/async_metric_storage.h +++ b/sdk/include/opentelemetry/sdk/metrics/state/async_metric_storage.h @@ -3,7 +3,8 @@ #pragma once -#include "opentelemetry/nostd/shared_ptr.h" +#include "opentelemetry/nostd/function_ref.h" +#include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/common/attributemap_hash.h" #include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h" #include "opentelemetry/sdk/metrics/instruments.h" @@ -15,6 +16,7 @@ #include "opentelemetry/sdk/metrics/view/attributes_processor.h" #include +#include OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/metrics/state/metric_collector.h b/sdk/include/opentelemetry/sdk/metrics/state/metric_collector.h index 95cd8a7d10..17abe741c3 100644 --- a/sdk/include/opentelemetry/sdk/metrics/state/metric_collector.h +++ b/sdk/include/opentelemetry/sdk/metrics/state/metric_collector.h @@ -3,8 +3,10 @@ #pragma once -#include "opentelemetry/sdk/metrics/data/metric_data.h" +#include + #include "opentelemetry/sdk/metrics/export/metric_producer.h" +#include "opentelemetry/sdk/metrics/instruments.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/metrics/state/metric_storage.h b/sdk/include/opentelemetry/sdk/metrics/state/metric_storage.h index 0f8f4ddba7..28a0f8671f 100644 --- a/sdk/include/opentelemetry/sdk/metrics/state/metric_storage.h +++ b/sdk/include/opentelemetry/sdk/metrics/state/metric_storage.h @@ -3,14 +3,26 @@ #pragma once -#include "opentelemetry/common/key_value_iterable_view.h" +#include + #include "opentelemetry/common/timestamp.h" -#include "opentelemetry/context/context.h" +#include "opentelemetry/nostd/function_ref.h" +#include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/metrics/data/metric_data.h" #include "opentelemetry/sdk/metrics/instruments.h" #include "opentelemetry/sdk/metrics/state/attributes_hashmap.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace common +{ +class KeyValueIterable; +} // namespace common + +namespace context +{ +class Context; +} // namespace context + namespace sdk { namespace metrics diff --git a/sdk/include/opentelemetry/sdk/metrics/state/multi_metric_storage.h b/sdk/include/opentelemetry/sdk/metrics/state/multi_metric_storage.h index 421c12b34c..f67b1e7bdc 100644 --- a/sdk/include/opentelemetry/sdk/metrics/state/multi_metric_storage.h +++ b/sdk/include/opentelemetry/sdk/metrics/state/multi_metric_storage.h @@ -3,11 +3,10 @@ #pragma once -#include "opentelemetry/common/key_value_iterable_view.h" -#include "opentelemetry/sdk/metrics/instruments.h" -#include "opentelemetry/sdk/metrics/state/metric_storage.h" - #include +#include + +#include "opentelemetry/sdk/metrics/state/metric_storage.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/metrics/state/sync_metric_storage.h b/sdk/include/opentelemetry/sdk/metrics/state/sync_metric_storage.h index b8146872e3..b966e107a5 100644 --- a/sdk/include/opentelemetry/sdk/metrics/state/sync_metric_storage.h +++ b/sdk/include/opentelemetry/sdk/metrics/state/sync_metric_storage.h @@ -17,6 +17,7 @@ #include #include +#include OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/metrics/state/temporal_metric_storage.h b/sdk/include/opentelemetry/sdk/metrics/state/temporal_metric_storage.h index 4ddc593149..c34b5f0422 100644 --- a/sdk/include/opentelemetry/sdk/metrics/state/temporal_metric_storage.h +++ b/sdk/include/opentelemetry/sdk/metrics/state/temporal_metric_storage.h @@ -3,10 +3,12 @@ #pragma once -#include "opentelemetry/nostd/shared_ptr.h" -#include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h" -#include "opentelemetry/sdk/metrics/state/attributes_hashmap.h" -#include "opentelemetry/sdk/metrics/state/metric_collector.h" +#include "opentelemetry/common/spin_lock_mutex.h" +#include "opentelemetry/common/timestamp.h" +#include "opentelemetry/nostd/function_ref.h" +#include "opentelemetry/nostd/span.h" +#include "opentelemetry/sdk/metrics/instruments.h" +#include "opentelemetry/sdk/metrics/state/metric_storage.h" #include #include @@ -17,6 +19,10 @@ namespace sdk namespace metrics { +class AggregationConfig; +class AttributesHashMap; +class CollectorHandle; + struct LastReportedMetrics { std::unique_ptr attributes_map; diff --git a/sdk/include/opentelemetry/sdk/resource/resource.h b/sdk/include/opentelemetry/sdk/resource/resource.h index 09da0b8c97..1871cfa794 100644 --- a/sdk/include/opentelemetry/sdk/resource/resource.h +++ b/sdk/include/opentelemetry/sdk/resource/resource.h @@ -3,17 +3,10 @@ #pragma once -#include "opentelemetry/common/attribute_value.h" -#include "opentelemetry/common/key_value_iterable_view.h" - #include "opentelemetry/sdk/common/attribute_utils.h" -#include "opentelemetry/sdk/resource/resource_detector.h" -#include "opentelemetry/sdk/version/version.h" #include "opentelemetry/version.h" #include -#include -#include OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h b/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h index 60e93d8a9f..10baabd899 100644 --- a/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h +++ b/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h @@ -4,9 +4,8 @@ #pragma once #include "opentelemetry/sdk/common/circular_buffer.h" -#include "opentelemetry/sdk/trace/batch_span_processor_options.h" -#include "opentelemetry/sdk/trace/exporter.h" #include "opentelemetry/sdk/trace/processor.h" +#include "opentelemetry/sdk/trace/recordable.h" #include #include @@ -15,10 +14,12 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { - namespace trace { +struct BatchSpanProcessorOptions; +class SpanExporter; + /** * This is an implementation of the SpanProcessor which creates batches of finished spans and passes * the export-friendly span data representations to the configured SpanExporter. diff --git a/sdk/include/opentelemetry/sdk/trace/batch_span_processor_factory.h b/sdk/include/opentelemetry/sdk/trace/batch_span_processor_factory.h index 6e66d2d2b9..4c59142c65 100644 --- a/sdk/include/opentelemetry/sdk/trace/batch_span_processor_factory.h +++ b/sdk/include/opentelemetry/sdk/trace/batch_span_processor_factory.h @@ -5,10 +5,7 @@ #include -#include "opentelemetry/sdk/trace/batch_span_processor_options.h" -#include "opentelemetry/sdk/trace/exporter.h" -#include "opentelemetry/sdk/trace/processor.h" -#include "opentelemetry/sdk/version/version.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -16,6 +13,10 @@ namespace sdk namespace trace { +struct BatchSpanProcessorOptions; +class SpanExporter; +class SpanProcessor; + /** * Factory class for BatchSpanProcessor. */ diff --git a/sdk/include/opentelemetry/sdk/trace/batch_span_processor_options.h b/sdk/include/opentelemetry/sdk/trace/batch_span_processor_options.h index 053126c065..ac1052383b 100644 --- a/sdk/include/opentelemetry/sdk/trace/batch_span_processor_options.h +++ b/sdk/include/opentelemetry/sdk/trace/batch_span_processor_options.h @@ -3,10 +3,10 @@ #pragma once -#include "opentelemetry/sdk/version/version.h" - #include +#include "opentelemetry/version.h" + OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/trace/exporter.h b/sdk/include/opentelemetry/sdk/trace/exporter.h index ffacca2b35..a0605b4f43 100644 --- a/sdk/include/opentelemetry/sdk/trace/exporter.h +++ b/sdk/include/opentelemetry/sdk/trace/exporter.h @@ -3,16 +3,19 @@ #pragma once +#include #include + #include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/common/exporter_utils.h" -#include "opentelemetry/sdk/trace/recordable.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { namespace trace { +class Recordable; + /** * SpanExporter defines the interface that protocol-specific span exporters must * implement. @@ -40,8 +43,7 @@ class OPENTELEMETRY_EXPORT SpanExporter * @param spans a span of unique pointers to span recordables */ virtual sdk::common::ExportResult Export( - const nostd::span> - &spans) noexcept = 0; + const nostd::span> &spans) noexcept = 0; /** * Export all spans that have been exported. diff --git a/sdk/include/opentelemetry/sdk/trace/multi_recordable.h b/sdk/include/opentelemetry/sdk/trace/multi_recordable.h index 6abd39f90b..e00ec114ca 100644 --- a/sdk/include/opentelemetry/sdk/trace/multi_recordable.h +++ b/sdk/include/opentelemetry/sdk/trace/multi_recordable.h @@ -6,7 +6,7 @@ #include "opentelemetry/common/timestamp.h" #include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/recordable.h" -#include "opentelemetry/version.h" +#include "opentelemetry/sdk/version/version.h" #include @@ -144,7 +144,8 @@ class MultiRecordable : public Recordable } } - void SetInstrumentationScope(const InstrumentationScope &instrumentation_scope) noexcept override + void SetInstrumentationScope(const opentelemetry::sdk::instrumentationscope::InstrumentationScope + &instrumentation_scope) noexcept override { for (auto &recordable : recordables_) { diff --git a/sdk/include/opentelemetry/sdk/trace/multi_span_processor.h b/sdk/include/opentelemetry/sdk/trace/multi_span_processor.h index e3b4a2031e..d139b9e144 100644 --- a/sdk/include/opentelemetry/sdk/trace/multi_span_processor.h +++ b/sdk/include/opentelemetry/sdk/trace/multi_span_processor.h @@ -9,8 +9,6 @@ #include "opentelemetry/sdk/trace/multi_recordable.h" #include "opentelemetry/sdk/trace/processor.h" -#include - OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/trace/processor.h b/sdk/include/opentelemetry/sdk/trace/processor.h index f87b893837..631e5cfd92 100644 --- a/sdk/include/opentelemetry/sdk/trace/processor.h +++ b/sdk/include/opentelemetry/sdk/trace/processor.h @@ -5,13 +5,21 @@ #include #include -#include "opentelemetry/sdk/trace/recordable.h" + +#include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace trace +{ +class SpanContext; +} // namespace trace namespace sdk { namespace trace { + +class Recordable; + /** * Span processor allow hooks for span start and end method invocations. * diff --git a/sdk/include/opentelemetry/sdk/trace/random_id_generator.h b/sdk/include/opentelemetry/sdk/trace/random_id_generator.h index 59df91651f..4e9a1bbca8 100644 --- a/sdk/include/opentelemetry/sdk/trace/random_id_generator.h +++ b/sdk/include/opentelemetry/sdk/trace/random_id_generator.h @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once + #include "opentelemetry/sdk/trace/id_generator.h" OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/trace/random_id_generator_factory.h b/sdk/include/opentelemetry/sdk/trace/random_id_generator_factory.h index 1b8f7e3c3b..a5071052f7 100644 --- a/sdk/include/opentelemetry/sdk/trace/random_id_generator_factory.h +++ b/sdk/include/opentelemetry/sdk/trace/random_id_generator_factory.h @@ -5,7 +5,7 @@ #include -#include "opentelemetry/sdk/trace/id_generator.h" +#include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -13,6 +13,8 @@ namespace sdk namespace trace { +class IdGenerator; + /** * Factory class for RandomIdGenerator. */ diff --git a/sdk/include/opentelemetry/sdk/trace/recordable.h b/sdk/include/opentelemetry/sdk/trace/recordable.h index 721e33232d..0a1e60cd69 100644 --- a/sdk/include/opentelemetry/sdk/trace/recordable.h +++ b/sdk/include/opentelemetry/sdk/trace/recordable.h @@ -8,26 +8,28 @@ #include "opentelemetry/common/timestamp.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/sdk/common/empty_attributes.h" -#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" -#include "opentelemetry/sdk/resource/resource.h" -#include "opentelemetry/trace/canonical_code.h" +#include "opentelemetry/sdk/version/version.h" #include "opentelemetry/trace/span.h" #include "opentelemetry/trace/span_context.h" #include "opentelemetry/trace/span_id.h" #include "opentelemetry/trace/trace_id.h" -#include "opentelemetry/version.h" - -#include // TODO: Create generic short pattern for opentelemetry::common and opentelemetry::trace OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { +namespace instrumentationscope +{ +class InstrumentationScope; +} // namespace instrumentationscope +namespace resource +{ +class Resource; +} // namespace resource namespace trace { -using namespace opentelemetry::sdk::instrumentationscope; class SpanData; /** @@ -166,10 +168,13 @@ class Recordable * @param instrumentation_scope the instrumentation scope to set */ virtual void SetInstrumentationScope( - const InstrumentationScope &instrumentation_scope) noexcept = 0; + const opentelemetry::sdk::instrumentationscope::InstrumentationScope + &instrumentation_scope) noexcept = 0; OPENTELEMETRY_DEPRECATED_MESSAGE("Please use SetInstrumentationScope instead") - void SetInstrumentationLibrary(const InstrumentationScope &instrumentation_scope) noexcept + void SetInstrumentationLibrary( + const opentelemetry::sdk::instrumentationscope::InstrumentationScope + &instrumentation_scope) noexcept { SetInstrumentationScope(instrumentation_scope); } diff --git a/sdk/include/opentelemetry/sdk/trace/sampler.h b/sdk/include/opentelemetry/sdk/trace/sampler.h index 799d490e8b..acc8d3a5dd 100644 --- a/sdk/include/opentelemetry/sdk/trace/sampler.h +++ b/sdk/include/opentelemetry/sdk/trace/sampler.h @@ -5,10 +5,7 @@ #include "opentelemetry/common/attribute_value.h" #include "opentelemetry/trace/span.h" -#include "opentelemetry/trace/span_context.h" -#include "opentelemetry/trace/span_context_kv_iterable.h" #include "opentelemetry/trace/trace_id.h" -#include "opentelemetry/trace/trace_state.h" #include "opentelemetry/version.h" #include @@ -16,6 +13,13 @@ #include OPENTELEMETRY_BEGIN_NAMESPACE +namespace trace +{ +class SpanContext; +class SpanContextKeyValueIterable; +class TraceState; +} // namespace trace + namespace sdk { namespace trace diff --git a/sdk/include/opentelemetry/sdk/trace/simple_processor.h b/sdk/include/opentelemetry/sdk/trace/simple_processor.h index 671218d0cf..81946e4f46 100644 --- a/sdk/include/opentelemetry/sdk/trace/simple_processor.h +++ b/sdk/include/opentelemetry/sdk/trace/simple_processor.h @@ -9,6 +9,7 @@ #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/sdk/trace/exporter.h" #include "opentelemetry/sdk/trace/processor.h" +#include "opentelemetry/sdk/trace/recordable.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/include/opentelemetry/sdk/trace/simple_processor_factory.h b/sdk/include/opentelemetry/sdk/trace/simple_processor_factory.h index efa3078a38..c4adb87c1e 100644 --- a/sdk/include/opentelemetry/sdk/trace/simple_processor_factory.h +++ b/sdk/include/opentelemetry/sdk/trace/simple_processor_factory.h @@ -5,8 +5,7 @@ #include -#include "opentelemetry/sdk/trace/exporter.h" -#include "opentelemetry/sdk/trace/processor.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -14,6 +13,9 @@ namespace sdk namespace trace { +class SpanExporter; +class SpanProcessor; + /** * Factory class for SimpleSpanProcessor. */ diff --git a/sdk/include/opentelemetry/sdk/trace/span_data.h b/sdk/include/opentelemetry/sdk/trace/span_data.h index 61a7ced6fe..78f07956e7 100644 --- a/sdk/include/opentelemetry/sdk/trace/span_data.h +++ b/sdk/include/opentelemetry/sdk/trace/span_data.h @@ -4,21 +4,22 @@ #pragma once #include +#include #include #include + #include "opentelemetry/common/attribute_value.h" #include "opentelemetry/common/macros.h" #include "opentelemetry/common/timestamp.h" #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/sdk/common/attribute_utils.h" +#include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" +#include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/sdk/trace/recordable.h" -#include "opentelemetry/trace/canonical_code.h" #include "opentelemetry/trace/span.h" #include "opentelemetry/trace/span_id.h" #include "opentelemetry/trace/trace_id.h" -#include - OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { @@ -171,7 +172,8 @@ class SpanData final : public Recordable * @returns the attributes associated with the resource configured for TracerProvider */ - const opentelemetry::sdk::trace::InstrumentationScope &GetInstrumentationScope() const noexcept + const opentelemetry::sdk::instrumentationscope::InstrumentationScope &GetInstrumentationScope() + const noexcept { if (instrumentation_scope_ == nullptr) { @@ -186,7 +188,8 @@ class SpanData final : public Recordable } OPENTELEMETRY_DEPRECATED_MESSAGE("Please use GetInstrumentationScope instead") - const opentelemetry::sdk::trace::InstrumentationScope &GetInstrumentationLibrary() const noexcept + const opentelemetry::sdk::instrumentationscope::InstrumentationScope &GetInstrumentationLibrary() + const noexcept { return GetInstrumentationScope(); } @@ -284,7 +287,8 @@ class SpanData final : public Recordable void SetDuration(std::chrono::nanoseconds duration) noexcept override { duration_ = duration; } - void SetInstrumentationScope(const InstrumentationScope &instrumentation_scope) noexcept override + void SetInstrumentationScope(const opentelemetry::sdk::instrumentationscope::InstrumentationScope + &instrumentation_scope) noexcept override { instrumentation_scope_ = &instrumentation_scope; } @@ -302,7 +306,7 @@ class SpanData final : public Recordable std::vector links_; opentelemetry::trace::SpanKind span_kind_{opentelemetry::trace::SpanKind::kInternal}; const opentelemetry::sdk::resource::Resource *resource_; - const InstrumentationScope *instrumentation_scope_; + const opentelemetry::sdk::instrumentationscope::InstrumentationScope *instrumentation_scope_; }; } // namespace trace } // namespace sdk diff --git a/sdk/include/opentelemetry/sdk/trace/tracer.h b/sdk/include/opentelemetry/sdk/trace/tracer.h index 3ac17aad66..75f075f22c 100644 --- a/sdk/include/opentelemetry/sdk/trace/tracer.h +++ b/sdk/include/opentelemetry/sdk/trace/tracer.h @@ -4,18 +4,18 @@ #pragma once #include "opentelemetry/common/macros.h" -#include "opentelemetry/sdk/common/atomic_shared_ptr.h" #include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h" #include "opentelemetry/sdk/resource/resource.h" #include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/samplers/always_on.h" #include "opentelemetry/sdk/trace/tracer_context.h" -#include "opentelemetry/trace/noop.h" #include "opentelemetry/trace/tracer.h" #include "opentelemetry/version.h" #include +namespace trace_api = opentelemetry::trace; + OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/include/opentelemetry/sdk/trace/tracer_context.h b/sdk/include/opentelemetry/sdk/trace/tracer_context.h index 6dcdda8e01..8ca3bb1aef 100644 --- a/sdk/include/opentelemetry/sdk/trace/tracer_context.h +++ b/sdk/include/opentelemetry/sdk/trace/tracer_context.h @@ -3,9 +3,11 @@ #pragma once -#include "opentelemetry/sdk/common/atomic_unique_ptr.h" +#include +#include +#include + #include "opentelemetry/sdk/resource/resource.h" -#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/random_id_generator.h" #include "opentelemetry/sdk/trace/samplers/always_on.h" #include "opentelemetry/version.h" @@ -16,6 +18,8 @@ namespace sdk namespace trace { +class SpanProcessor; + /** * A class which stores the TracerProvider context. * diff --git a/sdk/include/opentelemetry/sdk/trace/tracer_context_factory.h b/sdk/include/opentelemetry/sdk/trace/tracer_context_factory.h index b03ae297fc..7bc1001795 100644 --- a/sdk/include/opentelemetry/sdk/trace/tracer_context_factory.h +++ b/sdk/include/opentelemetry/sdk/trace/tracer_context_factory.h @@ -3,17 +3,27 @@ #pragma once -#include "opentelemetry/sdk/resource/resource.h" -#include "opentelemetry/sdk/trace/processor.h" -#include "opentelemetry/sdk/trace/tracer_context.h" -#include "opentelemetry/version.h" +#include +#include + +#include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { +namespace resource +{ +class Resource; +} // namespace resource + namespace trace { +class IdGenerator; +class Sampler; +class SpanProcessor; +class TracerContext; + /** * Factory class for TracerContext. */ diff --git a/sdk/include/opentelemetry/sdk/trace/tracer_provider.h b/sdk/include/opentelemetry/sdk/trace/tracer_provider.h index 06088738c2..0f2e85cc93 100644 --- a/sdk/include/opentelemetry/sdk/trace/tracer_provider.h +++ b/sdk/include/opentelemetry/sdk/trace/tracer_provider.h @@ -3,18 +3,14 @@ #pragma once -#include #include #include -#include #include -#include "opentelemetry/nostd/shared_ptr.h" +#include "opentelemetry/nostd/string_view.h" #include "opentelemetry/sdk/resource/resource.h" -#include "opentelemetry/sdk/trace/processor.h" +#include "opentelemetry/sdk/trace/random_id_generator.h" #include "opentelemetry/sdk/trace/samplers/always_on.h" -#include "opentelemetry/sdk/trace/tracer.h" -#include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/trace/tracer_provider.h" OPENTELEMETRY_BEGIN_NAMESPACE @@ -22,6 +18,11 @@ namespace sdk { namespace trace { + +class Tracer; +class SpanProcessor; +class TracerContext; + class TracerProvider final : public opentelemetry::trace::TracerProvider { public: diff --git a/sdk/include/opentelemetry/sdk/trace/tracer_provider_factory.h b/sdk/include/opentelemetry/sdk/trace/tracer_provider_factory.h index 14458b2409..b65dda3b51 100644 --- a/sdk/include/opentelemetry/sdk/trace/tracer_provider_factory.h +++ b/sdk/include/opentelemetry/sdk/trace/tracer_provider_factory.h @@ -4,17 +4,30 @@ #pragma once #include +#include -#include "opentelemetry/sdk/trace/processor.h" -#include "opentelemetry/sdk/trace/tracer_context.h" -#include "opentelemetry/trace/tracer_provider.h" +#include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE +namespace trace +{ +class TracerProvider; +} // namespace trace namespace sdk { +namespace resource +{ +class Resource; +} // namespace resource + namespace trace { +class IdGenerator; +class Sampler; +class SpanProcessor; +class TracerContext; + /** * Factory class for TracerProvider. * See @ref TracerProvider. diff --git a/sdk/src/common/global_log_handler.cc b/sdk/src/common/global_log_handler.cc index 040e3e2154..a00485d266 100644 --- a/sdk/src/common/global_log_handler.cc +++ b/sdk/src/common/global_log_handler.cc @@ -4,6 +4,7 @@ #include "opentelemetry/sdk/common/global_log_handler.h" #include +#include #include OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/sdk/src/common/random.cc b/sdk/src/common/random.cc index 77b88cfa2a..2a231d34ec 100644 --- a/sdk/src/common/random.cc +++ b/sdk/src/common/random.cc @@ -3,6 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "src/common/random.h" +#include "src/common/fast_random_number_generator.h" #include "src/common/platform/fork.h" #include diff --git a/sdk/src/common/random.h b/sdk/src/common/random.h index ecd6dabc1e..0a22ed8359 100644 --- a/sdk/src/common/random.h +++ b/sdk/src/common/random.h @@ -5,13 +5,15 @@ #include "opentelemetry/nostd/span.h" #include "opentelemetry/version.h" -#include "src/common/fast_random_number_generator.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { namespace common { + +class FastRandomNumberGenerator; + /** * Utility methods for creating random data, based on a seeded thread-local * number generator. diff --git a/sdk/src/logs/batch_log_record_processor.cc b/sdk/src/logs/batch_log_record_processor.cc index 6b1db1c666..665e276d2b 100644 --- a/sdk/src/logs/batch_log_record_processor.cc +++ b/sdk/src/logs/batch_log_record_processor.cc @@ -4,8 +4,11 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/sdk/logs/batch_log_record_processor.h" # include "opentelemetry/common/spin_lock_mutex.h" +# include "opentelemetry/common/timestamp.h" +# include "opentelemetry/sdk/logs/recordable.h" # include + using opentelemetry::sdk::common::AtomicUniquePtr; using opentelemetry::sdk::common::CircularBufferRange; @@ -272,7 +275,7 @@ void BatchLogRecordProcessor::GetWaitAdjustedTime( auto offset = std::chrono::duration_cast(end_time - start_time); start_time = end_time; timeout = opentelemetry::common::DurationUtil::AdjustWaitForTimeout( - timeout, std::chrono::microseconds::zero()); + timeout, std::chrono::microseconds::zero()); if (timeout > offset && timeout > std::chrono::microseconds::zero()) { timeout -= offset; diff --git a/sdk/src/logs/logger.cc b/sdk/src/logs/logger.cc index 190bfe6f5a..567a04cb1b 100644 --- a/sdk/src/logs/logger.cc +++ b/sdk/src/logs/logger.cc @@ -4,6 +4,7 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/sdk/logs/logger.h" # include "opentelemetry/context/runtime_context.h" +# include "opentelemetry/sdk/logs/recordable.h" # include "opentelemetry/sdk_config.h" # include "opentelemetry/trace/provider.h" diff --git a/sdk/src/logs/logger_context_factory.cc b/sdk/src/logs/logger_context_factory.cc index 985743fd67..3893c3e5b0 100644 --- a/sdk/src/logs/logger_context_factory.cc +++ b/sdk/src/logs/logger_context_factory.cc @@ -4,9 +4,9 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/sdk/logs/logger_context_factory.h" - -# include -# include +# include "opentelemetry/sdk/logs/logger_context.h" +# include "opentelemetry/sdk/logs/processor.h" +# include "opentelemetry/sdk/resource/resource.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/src/logs/multi_recordable.cc b/sdk/src/logs/multi_recordable.cc index 17e2c29777..e60677c4ff 100644 --- a/sdk/src/logs/multi_recordable.cc +++ b/sdk/src/logs/multi_recordable.cc @@ -4,10 +4,7 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/sdk/logs/multi_recordable.h" - -# include -# include -# include +# include "opentelemetry/sdk/logs/processor.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/src/logs/read_write_log_record.cc b/sdk/src/logs/read_write_log_record.cc index e452fa20e9..56ce391634 100644 --- a/sdk/src/logs/read_write_log_record.cc +++ b/sdk/src/logs/read_write_log_record.cc @@ -142,7 +142,10 @@ const std::unordered_map const opentelemetry::sdk::resource::Resource &ReadWriteLogRecord::GetResource() const noexcept { - OPENTELEMETRY_LIKELY_IF(nullptr != resource_) { return *resource_; } + OPENTELEMETRY_LIKELY_IF(nullptr != resource_) + { + return *resource_; + } return GetDefaultResource(); } @@ -156,7 +159,10 @@ void ReadWriteLogRecord::SetResource( const opentelemetry::sdk::instrumentationscope::InstrumentationScope & ReadWriteLogRecord::GetInstrumentationScope() const noexcept { - OPENTELEMETRY_LIKELY_IF(nullptr != instrumentation_scope_) { return *instrumentation_scope_; } + OPENTELEMETRY_LIKELY_IF(nullptr != instrumentation_scope_) + { + return *instrumentation_scope_; + } return GetDefaultInstrumentationScope(); } diff --git a/sdk/src/logs/simple_log_record_processor.cc b/sdk/src/logs/simple_log_record_processor.cc index 50d4c20fdd..9b89edff2c 100644 --- a/sdk/src/logs/simple_log_record_processor.cc +++ b/sdk/src/logs/simple_log_record_processor.cc @@ -3,8 +3,10 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/sdk/logs/simple_log_record_processor.h" +# include "opentelemetry/sdk/logs/recordable.h" # include +# include # include OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/sdk/src/metrics/aggregation/histogram_aggregation.cc b/sdk/src/metrics/aggregation/histogram_aggregation.cc index fe01030f13..3213c27f16 100644 --- a/sdk/src/metrics/aggregation/histogram_aggregation.cc +++ b/sdk/src/metrics/aggregation/histogram_aggregation.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h" +#include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h" #include "opentelemetry/version.h" #include diff --git a/sdk/src/metrics/export/periodic_exporting_metric_reader.cc b/sdk/src/metrics/export/periodic_exporting_metric_reader.cc index bcca86bee0..dfa4a5ee6b 100644 --- a/sdk/src/metrics/export/periodic_exporting_metric_reader.cc +++ b/sdk/src/metrics/export/periodic_exporting_metric_reader.cc @@ -60,14 +60,15 @@ void PeriodicExportingMetricReader::DoBackgroundWork() auto end = std::chrono::steady_clock::now(); auto export_time_ms = std::chrono::duration_cast(end - start); auto remaining_wait_interval_ms = export_interval_millis_ - export_time_ms; - cv_.wait_for(lk, remaining_wait_interval_ms); + cv_.wait_for(lk, remaining_wait_interval_ms, [this]() { + if (is_force_wakeup_background_worker_.load(std::memory_order_acquire)) + { + is_force_wakeup_background_worker_.store(false, std::memory_order_release); + return true; + } + return IsShutdown(); + }); } while (IsShutdown() != true); - // One last Collect and Export before shutdown - auto status = CollectAndExportOnce(); - if (!status) - { - OTEL_INTERNAL_LOG_ERROR("[Periodic Exporting Metric Reader] Collect-Export Cycle Failure.") - } } bool PeriodicExportingMetricReader::CollectAndExportOnce() @@ -86,6 +87,7 @@ bool PeriodicExportingMetricReader::CollectAndExportOnce() return true; }); }); + std::future_status status; do { @@ -96,12 +98,93 @@ bool PeriodicExportingMetricReader::CollectAndExportOnce() break; } } while (status != std::future_status::ready); + bool notify_force_flush = is_force_flush_pending_.exchange(false, std::memory_order_acq_rel); + if (notify_force_flush) + { + is_force_flush_notified_.store(true, std::memory_order_release); + force_flush_cv_.notify_one(); + } + return true; } bool PeriodicExportingMetricReader::OnForceFlush(std::chrono::microseconds timeout) noexcept { - return exporter_->ForceFlush(timeout); + std::unique_lock lk_cv(force_flush_m_); + is_force_flush_pending_.store(true, std::memory_order_release); + auto break_condition = [this]() { + if (IsShutdown()) + { + return true; + } + + // Wake up the worker thread once. + if (is_force_flush_pending_.load(std::memory_order_acquire)) + { + is_force_wakeup_background_worker_.store(true, std::memory_order_release); + cv_.notify_one(); + } + return is_force_flush_notified_.load(std::memory_order_acquire); + }; + + auto wait_timeout = opentelemetry::common::DurationUtil::AdjustWaitForTimeout( + timeout, std::chrono::microseconds::zero()); + std::chrono::steady_clock::duration timeout_steady = + std::chrono::duration_cast(wait_timeout); + if (timeout_steady <= std::chrono::steady_clock::duration::zero()) + { + timeout_steady = std::chrono::steady_clock::duration::max(); + } + + bool result = false; + while (!result && timeout_steady > std::chrono::steady_clock::duration::zero()) + { + // When is_force_flush_notified_.store(true) and force_flush_cv_.notify_all() is called + // between is_force_flush_pending_.load() and force_flush_cv_.wait(). We must not wait + // for ever + std::chrono::steady_clock::time_point start_timepoint = std::chrono::steady_clock::now(); + result = force_flush_cv_.wait_for(lk_cv, export_interval_millis_, break_condition); + timeout_steady -= std::chrono::steady_clock::now() - start_timepoint; + } + + // If it will be already signaled, we must wait until notified. + // We use a spin lock here + if (false == is_force_flush_pending_.exchange(false, std::memory_order_acq_rel)) + { + for (int retry_waiting_times = 0; + false == is_force_flush_notified_.load(std::memory_order_acquire); ++retry_waiting_times) + { + opentelemetry::common::SpinLockMutex::fast_yield(); + if ((retry_waiting_times & 127) == 127) + { + std::this_thread::yield(); + } + } + } + is_force_flush_notified_.store(false, std::memory_order_release); + + if (result) + { + // - If original `timeout` is `zero`, use that in exporter::forceflush + // - Else if remaining `timeout_steady` more than zero, use that in exporter::forceflush + // - Else don't invoke exporter::forceflush ( as remaining time is zero or less) + if (timeout <= std::chrono::steady_clock::duration::zero()) + { + result = + exporter_->ForceFlush(std::chrono::duration_cast(timeout)); + } + else if (timeout_steady > std::chrono::steady_clock::duration::zero()) + { + result = exporter_->ForceFlush( + std::chrono::duration_cast(timeout_steady)); + } + else + { + // remaining timeout_steady is zero or less + result = false; + } + } + return result; } bool PeriodicExportingMetricReader::OnShutDown(std::chrono::microseconds timeout) noexcept diff --git a/sdk/src/metrics/meter_context.cc b/sdk/src/metrics/meter_context.cc index de25153e1d..27374ba889 100644 --- a/sdk/src/metrics/meter_context.cc +++ b/sdk/src/metrics/meter_context.cc @@ -7,6 +7,8 @@ #include "opentelemetry/sdk_config.h" #include "opentelemetry/version.h" +#include + OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/src/metrics/state/temporal_metric_storage.cc b/sdk/src/metrics/state/temporal_metric_storage.cc index 1095c21418..fe528267b7 100644 --- a/sdk/src/metrics/state/temporal_metric_storage.cc +++ b/sdk/src/metrics/state/temporal_metric_storage.cc @@ -1,14 +1,15 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -#include -#include -#include -#include "opentelemetry/nostd/shared_ptr.h" - +#include "opentelemetry/sdk/metrics/state/temporal_metric_storage.h" #include "opentelemetry/metrics/meter.h" +#include "opentelemetry/sdk/common/attributemap_hash.h" #include "opentelemetry/sdk/metrics/aggregation/default_aggregation.h" -#include "opentelemetry/sdk/metrics/state/temporal_metric_storage.h" +#include "opentelemetry/sdk/metrics/state/metric_collector.h" + +#include +#include +#include OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk diff --git a/sdk/src/resource/resource.cc b/sdk/src/resource/resource.cc index f71e17a8a7..4ca65dc811 100644 --- a/sdk/src/resource/resource.cc +++ b/sdk/src/resource/resource.cc @@ -5,11 +5,16 @@ #include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/resource/resource_detector.h" #include "opentelemetry/sdk/resource/semantic_conventions.h" -#include "opentelemetry/version.h" +#include "opentelemetry/sdk/version/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { +namespace instrumentationscope +{ +class InstrumentationScope; +} // namespace instrumentationscope + namespace resource { diff --git a/sdk/src/resource/resource_detector.cc b/sdk/src/resource/resource_detector.cc index f5c856f088..d30909b74b 100644 --- a/sdk/src/resource/resource_detector.cc +++ b/sdk/src/resource/resource_detector.cc @@ -5,6 +5,8 @@ #include "opentelemetry/sdk/common/env_variables.h" #include "opentelemetry/sdk/resource/resource.h" +#include + OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { diff --git a/sdk/src/trace/batch_span_processor.cc b/sdk/src/trace/batch_span_processor.cc index da9f39f054..03a288e12a 100644 --- a/sdk/src/trace/batch_span_processor.cc +++ b/sdk/src/trace/batch_span_processor.cc @@ -4,8 +4,11 @@ #include "opentelemetry/sdk/trace/batch_span_processor.h" #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/sdk/common/global_log_handler.h" +#include "opentelemetry/sdk/trace/batch_span_processor_options.h" +#include "opentelemetry/sdk/trace/exporter.h" #include + using opentelemetry::sdk::common::AtomicUniquePtr; using opentelemetry::sdk::common::CircularBuffer; using opentelemetry::sdk::common::CircularBufferRange; @@ -260,7 +263,7 @@ void BatchSpanProcessor::GetWaitAdjustedTime( auto offset = std::chrono::duration_cast(end_time - start_time); start_time = end_time; timeout = opentelemetry::common::DurationUtil::AdjustWaitForTimeout( - timeout, std::chrono::microseconds::zero()); + timeout, std::chrono::microseconds::zero()); if (timeout > offset && timeout > std::chrono::microseconds::zero()) { timeout -= offset; diff --git a/sdk/src/trace/span.cc b/sdk/src/trace/span.cc index 138c966af3..dfaafb80c2 100644 --- a/sdk/src/trace/span.cc +++ b/sdk/src/trace/span.cc @@ -5,6 +5,7 @@ #include "src/common/random.h" #include "opentelemetry/context/runtime_context.h" +#include "opentelemetry/sdk/trace/recordable.h" #include "opentelemetry/trace/trace_flags.h" #include "opentelemetry/version.h" diff --git a/sdk/src/trace/tracer.cc b/sdk/src/trace/tracer.cc index 07fd36d5b7..db1b82bec4 100644 --- a/sdk/src/trace/tracer.cc +++ b/sdk/src/trace/tracer.cc @@ -6,6 +6,7 @@ #include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/sdk/common/atomic_shared_ptr.h" #include "opentelemetry/trace/context.h" +#include "opentelemetry/trace/noop.h" #include "opentelemetry/version.h" #include "src/trace/span.h" @@ -65,14 +66,14 @@ nostd::shared_ptr Tracer::StartSpan( auto sampling_result = context_->GetSampler().ShouldSample(parent_context, trace_id, name, options.kind, attributes, links); auto trace_flags = sampling_result.IsSampled() - ? trace_api::TraceFlags{trace_api::TraceFlags::kIsSampled} - : trace_api::TraceFlags{}; - - auto span_context = std::unique_ptr(new trace_api::SpanContext( - trace_id, span_id, trace_flags, false, - sampling_result.trace_state ? sampling_result.trace_state - : is_parent_span_valid ? parent_context.trace_state() - : trace_api::TraceState::GetDefault())); + ? trace_api::TraceFlags{trace_api::TraceFlags::kIsSampled} + : trace_api::TraceFlags{}; + + auto span_context = std::unique_ptr( + new trace_api::SpanContext(trace_id, span_id, trace_flags, false, + sampling_result.trace_state ? sampling_result.trace_state + : is_parent_span_valid ? parent_context.trace_state() + : trace_api::TraceState::GetDefault())); if (!sampling_result.IsRecording()) { diff --git a/sdk/src/trace/tracer_provider.cc b/sdk/src/trace/tracer_provider.cc index b5eed6312f..b43936acca 100644 --- a/sdk/src/trace/tracer_provider.cc +++ b/sdk/src/trace/tracer_provider.cc @@ -3,6 +3,7 @@ #include "opentelemetry/sdk/trace/tracer_provider.h" #include "opentelemetry/sdk/common/global_log_handler.h" +#include "opentelemetry/sdk/trace/tracer.h" #include "opentelemetry/sdk_config.h" OPENTELEMETRY_BEGIN_NAMESPACE diff --git a/sdk/src/trace/tracer_provider_factory.cc b/sdk/src/trace/tracer_provider_factory.cc index df25694781..158ae949ea 100644 --- a/sdk/src/trace/tracer_provider_factory.cc +++ b/sdk/src/trace/tracer_provider_factory.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/sdk/trace/tracer_provider_factory.h" +#include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/random_id_generator_factory.h" #include "opentelemetry/sdk/trace/samplers/always_on_factory.h" #include "opentelemetry/sdk/trace/tracer_provider.h" diff --git a/sdk/test/common/fast_random_number_generator_test.cc b/sdk/test/common/fast_random_number_generator_test.cc index e9209fdb6b..b5de47dc0f 100644 --- a/sdk/test/common/fast_random_number_generator_test.cc +++ b/sdk/test/common/fast_random_number_generator_test.cc @@ -1,6 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 +#include "src/common/fast_random_number_generator.h" #include "src/common/random.h" #include diff --git a/sdk/test/instrumentationscope/instrumentationscope_test.cc b/sdk/test/instrumentationscope/instrumentationscope_test.cc index 50800fd136..427f9b4938 100644 --- a/sdk/test/instrumentationscope/instrumentationscope_test.cc +++ b/sdk/test/instrumentationscope/instrumentationscope_test.cc @@ -20,10 +20,10 @@ TEST(InstrumentationScope, CreateInstrumentationScope) std::string schema_url = "https://opentelemetry.io/schemas/1.2.0"; uint32_t attrubite_value3[] = {7, 8, 9}; auto instrumentation_scope = InstrumentationScope::Create( - library_name, library_version, schema_url, - {{"attribute-key1", "attribute-value"}, - {"attribute-key2", static_cast(123)}, - {"attribute-key3", opentelemetry::nostd::span(attrubite_value3)}}); + library_name, library_version, schema_url, + {{"attribute-key1", "attribute-value"}, + {"attribute-key2", static_cast(123)}, + {"attribute-key3", opentelemetry::nostd::span(attrubite_value3)}}); EXPECT_EQ(instrumentation_scope->GetName(), library_name); EXPECT_EQ(instrumentation_scope->GetVersion(), library_version); diff --git a/sdk/test/logs/logger_sdk_test.cc b/sdk/test/logs/logger_sdk_test.cc index 5f6467cd91..0608370629 100644 --- a/sdk/test/logs/logger_sdk_test.cc +++ b/sdk/test/logs/logger_sdk_test.cc @@ -12,6 +12,10 @@ # include "opentelemetry/sdk/logs/event_logger_provider.h" # include "opentelemetry/sdk/logs/logger.h" # include "opentelemetry/sdk/logs/recordable.h" +# include "opentelemetry/sdk/trace/exporter.h" +# include "opentelemetry/sdk/trace/processor.h" +# include "opentelemetry/sdk/trace/tracer.h" +# include "opentelemetry/sdk/trace/tracer_provider.h" # include "opentelemetry/sdk/trace/tracer_provider_factory.h" # include "opentelemetry/trace/scope.h" diff --git a/sdk/test/metrics/aggregation_test.cc b/sdk/test/metrics/aggregation_test.cc index 9f307cb015..94e5f4c1fa 100644 --- a/sdk/test/metrics/aggregation_test.cc +++ b/sdk/test/metrics/aggregation_test.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include +#include "opentelemetry/sdk/metrics/aggregation/aggregation_config.h" #include "opentelemetry/sdk/metrics/aggregation/histogram_aggregation.h" #include "opentelemetry/sdk/metrics/aggregation/lastvalue_aggregation.h" #include "opentelemetry/sdk/metrics/aggregation/sum_aggregation.h" diff --git a/sdk/test/metrics/attributes_hashmap_benchmark.cc b/sdk/test/metrics/attributes_hashmap_benchmark.cc index f0286ec09e..0568080a6d 100644 --- a/sdk/test/metrics/attributes_hashmap_benchmark.cc +++ b/sdk/test/metrics/attributes_hashmap_benchmark.cc @@ -9,6 +9,8 @@ #include "opentelemetry/sdk/metrics/state/attributes_hashmap.h" #include +#include +#include #include using namespace opentelemetry::sdk::metrics; diff --git a/sdk/test/metrics/exemplar/always_sample_filter_test.cc b/sdk/test/metrics/exemplar/always_sample_filter_test.cc index cd9e58f284..b04f180442 100644 --- a/sdk/test/metrics/exemplar/always_sample_filter_test.cc +++ b/sdk/test/metrics/exemplar/always_sample_filter_test.cc @@ -2,7 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 #include +#include "opentelemetry/context/context.h" #include "opentelemetry/sdk/metrics/exemplar/filter.h" +#include "opentelemetry/sdk/metrics/instruments.h" using namespace opentelemetry::sdk::metrics; diff --git a/sdk/test/metrics/exemplar/never_sample_filter_test.cc b/sdk/test/metrics/exemplar/never_sample_filter_test.cc index 4428f60104..856d008e60 100644 --- a/sdk/test/metrics/exemplar/never_sample_filter_test.cc +++ b/sdk/test/metrics/exemplar/never_sample_filter_test.cc @@ -4,6 +4,7 @@ #include #include "opentelemetry/context/context.h" #include "opentelemetry/sdk/metrics/exemplar/filter.h" +#include "opentelemetry/sdk/metrics/instruments.h" using namespace opentelemetry::sdk::metrics; diff --git a/sdk/test/metrics/exemplar/with_trace_sample_filter_test.cc b/sdk/test/metrics/exemplar/with_trace_sample_filter_test.cc index be22f93f06..1fca7c40c6 100644 --- a/sdk/test/metrics/exemplar/with_trace_sample_filter_test.cc +++ b/sdk/test/metrics/exemplar/with_trace_sample_filter_test.cc @@ -4,6 +4,7 @@ #include #include "opentelemetry/context/context.h" #include "opentelemetry/sdk/metrics/exemplar/filter.h" +#include "opentelemetry/sdk/metrics/instruments.h" using namespace opentelemetry::sdk::metrics; diff --git a/sdk/test/metrics/periodic_exporting_metric_reader_test.cc b/sdk/test/metrics/periodic_exporting_metric_reader_test.cc index cd789b5028..e115f79f75 100644 --- a/sdk/test/metrics/periodic_exporting_metric_reader_test.cc +++ b/sdk/test/metrics/periodic_exporting_metric_reader_test.cc @@ -70,6 +70,7 @@ TEST(PeriodicExporingMetricReader, BasicTests) MockMetricProducer producer; reader.SetMetricProducer(&producer); std::this_thread::sleep_for(std::chrono::milliseconds(2000)); + EXPECT_NO_THROW(reader.ForceFlush()); reader.Shutdown(); EXPECT_EQ(static_cast(exporter_ptr)->GetDataCount(), static_cast(&producer)->GetDataCount()); diff --git a/sdk/test/metrics/sync_metric_storage_counter_test.cc b/sdk/test/metrics/sync_metric_storage_counter_test.cc index 1c57e1ee38..4f990e85a5 100644 --- a/sdk/test/metrics/sync_metric_storage_counter_test.cc +++ b/sdk/test/metrics/sync_metric_storage_counter_test.cc @@ -29,7 +29,7 @@ TEST_P(WritableMetricStorageTestFixture, LongCounterSumAggregation) int64_t expected_total_get_requests = 0; int64_t expected_total_put_requests = 0; InstrumentDescriptor instr_desc = {"name", "desc", "1unit", InstrumentType::kCounter, - InstrumentValueType::kLong}; + InstrumentValueType::kLong}; std::map attributes_get = {{"RequestType", "GET"}}; std::map attributes_put = {{"RequestType", "PUT"}}; @@ -162,7 +162,7 @@ TEST_P(WritableMetricStorageTestFixture, DoubleCounterSumAggregation) double expected_total_get_requests = 0; double expected_total_put_requests = 0; InstrumentDescriptor instr_desc = {"name", "desc", "1unit", InstrumentType::kCounter, - InstrumentValueType::kDouble}; + InstrumentValueType::kDouble}; std::map attributes_get = {{"RequestType", "GET"}}; std::map attributes_put = {{"RequestType", "PUT"}}; diff --git a/sdk/test/metrics/sync_metric_storage_histogram_test.cc b/sdk/test/metrics/sync_metric_storage_histogram_test.cc index b63d31e7ce..149b359cb0 100644 --- a/sdk/test/metrics/sync_metric_storage_histogram_test.cc +++ b/sdk/test/metrics/sync_metric_storage_histogram_test.cc @@ -30,7 +30,7 @@ TEST_P(WritableMetricStorageHistogramTestFixture, LongHistogram) int64_t expected_total_get_requests = 0; int64_t expected_total_put_requests = 0; InstrumentDescriptor instr_desc = {"name", "desc", "1unit", InstrumentType::kHistogram, - InstrumentValueType::kLong}; + InstrumentValueType::kLong}; std::map attributes_get = {{"RequestType", "GET"}}; std::map attributes_put = {{"RequestType", "PUT"}}; @@ -164,7 +164,7 @@ TEST_P(WritableMetricStorageHistogramTestFixture, DoubleHistogram) double expected_total_get_requests = 0; double expected_total_put_requests = 0; InstrumentDescriptor instr_desc = {"name", "desc", "1unit", InstrumentType::kHistogram, - InstrumentValueType::kDouble}; + InstrumentValueType::kDouble}; std::map attributes_get = {{"RequestType", "GET"}}; std::map attributes_put = {{"RequestType", "PUT"}}; diff --git a/sdk/test/resource/resource_test.cc b/sdk/test/resource/resource_test.cc index 803d5666d9..bc89d11ce3 100644 --- a/sdk/test/resource/resource_test.cc +++ b/sdk/test/resource/resource_test.cc @@ -7,6 +7,7 @@ #include "opentelemetry/sdk/common/attribute_utils.h" #include "opentelemetry/sdk/resource/resource_detector.h" #include "opentelemetry/sdk/resource/semantic_conventions.h" +#include "opentelemetry/sdk/version/version.h" #include #include diff --git a/sdk/test/trace/batch_span_processor_test.cc b/sdk/test/trace/batch_span_processor_test.cc index b7a6558538..191544acfb 100644 --- a/sdk/test/trace/batch_span_processor_test.cc +++ b/sdk/test/trace/batch_span_processor_test.cc @@ -2,7 +2,10 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/sdk/trace/batch_span_processor.h" +#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/sdk/common/global_log_handler.h" +#include "opentelemetry/sdk/trace/batch_span_processor_options.h" +#include "opentelemetry/sdk/trace/exporter.h" #include "opentelemetry/sdk/trace/span_data.h" #include "opentelemetry/sdk/trace/tracer.h" diff --git a/sdk/test/trace/parent_sampler_test.cc b/sdk/test/trace/parent_sampler_test.cc index 124287598d..7d2ef7f107 100644 --- a/sdk/test/trace/parent_sampler_test.cc +++ b/sdk/test/trace/parent_sampler_test.cc @@ -42,7 +42,7 @@ TEST(ParentBasedSampler, ShouldSample) // Case 1: Parent doesn't exist. Return result of delegateSampler() auto sampling_result = sampler_off.ShouldSample(trace_api::SpanContext::GetInvalid(), trace_id, - "", span_kind, view, links); + "", span_kind, view, links); auto sampling_result2 = sampler_on.ShouldSample(trace_api::SpanContext::GetInvalid(), trace_id, "", span_kind, view, links);