From 528118b4c3ae5a0728af6de6a125001b64441a61 Mon Sep 17 00:00:00 2001 From: Anshul Kumar Date: Tue, 6 Apr 2021 02:02:32 +0530 Subject: [PATCH 1/3] removing duplicate enum class ExportResult --- .../exporters/elasticsearch/es_log_exporter.h | 2 +- .../elasticsearch/src/es_log_exporter.cc | 10 ++-- .../test/es_log_exporter_test.cc | 4 +- .../memory/in_memory_span_exporter.h | 4 +- .../exporters/ostream/log_exporter.h | 2 +- .../exporters/ostream/metrics_exporter.h | 2 +- .../exporters/ostream/span_exporter.h | 2 +- exporters/ostream/src/log_exporter.cc | 6 +-- exporters/ostream/src/metrics_exporter.cc | 4 +- exporters/ostream/src/span_exporter.cc | 6 +-- .../exporters/otlp/otlp_exporter.h | 2 +- exporters/otlp/src/otlp_exporter.cc | 6 +-- exporters/otlp/test/otlp_exporter_test.cc | 4 +- exporters/zipkin/src/zipkin_exporter.cc | 10 ++-- .../opentelemetry/sdk/common/exporter_utils.h | 47 +++++++++++++++++++ sdk/include/opentelemetry/sdk/logs/exporter.h | 14 +----- .../sdk/metrics/async_instruments.h | 6 +-- .../opentelemetry/sdk/metrics/exporter.h | 29 +----------- .../opentelemetry/sdk/metrics/instrument.h | 14 +++--- sdk/include/opentelemetry/sdk/metrics/meter.h | 8 ++-- .../sdk/metrics/sync_instruments.h | 18 +++---- .../opentelemetry/sdk/trace/exporter.h | 18 +------ .../sdk/trace/simple_processor.h | 2 +- sdk/src/logs/simple_log_processor.cc | 2 +- sdk/test/logs/batch_log_processor_test.cc | 1 + sdk/test/logs/simple_log_processor_test.cc | 1 + sdk/test/metrics/controller_test.cc | 3 +- sdk/test/trace/batch_span_processor_test.cc | 4 +- sdk/test/trace/simple_processor_test.cc | 1 + 29 files changed, 117 insertions(+), 115 deletions(-) create mode 100644 sdk/include/opentelemetry/sdk/common/exporter_utils.h diff --git a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h index 02b0493306..9e0c895fa3 100644 --- a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h +++ b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h @@ -99,7 +99,7 @@ class ElasticsearchLogExporter final : public sdklogs::LogExporter * timeout specified from the options passed from the constructor. * @param records A list of log records to send to Elasticsearch. */ - sdklogs::ExportResult Export( + sdk::common::ExportResult Export( const nostd::span> &records) noexcept override; /** diff --git a/exporters/elasticsearch/src/es_log_exporter.cc b/exporters/elasticsearch/src/es_log_exporter.cc index f0d1f2fc64..785a5b40c2 100644 --- a/exporters/elasticsearch/src/es_log_exporter.cc +++ b/exporters/elasticsearch/src/es_log_exporter.cc @@ -136,7 +136,7 @@ std::unique_ptr ElasticsearchLogExporter::MakeRecordable() return std::unique_ptr(new ElasticSearchRecordable); } -sdklogs::ExportResult ElasticsearchLogExporter::Export( +sdk::common::ExportResult ElasticsearchLogExporter::Export( const nostd::span> &records) noexcept { // Return failure if this exporter has been shutdown @@ -147,7 +147,7 @@ sdklogs::ExportResult ElasticsearchLogExporter::Export( std::cout << "Export failed, exporter is shutdown" << std::endl; } - return sdklogs::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } // Create a connection to the ElasticSearch instance @@ -195,7 +195,7 @@ sdklogs::ExportResult ElasticsearchLogExporter::Export( if (!write_successful) { // TODO: retry logic - return sdklogs::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } // Parse the response output to determine if Elasticsearch consumed it correctly @@ -209,10 +209,10 @@ sdklogs::ExportResult ElasticsearchLogExporter::Export( } // TODO: Retry logic - return sdklogs::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } - return sdklogs::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } bool ElasticsearchLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept diff --git a/exporters/elasticsearch/test/es_log_exporter_test.cc b/exporters/elasticsearch/test/es_log_exporter_test.cc index 8bd109021e..787b5ce4d7 100644 --- a/exporters/elasticsearch/test/es_log_exporter_test.cc +++ b/exporters/elasticsearch/test/es_log_exporter_test.cc @@ -35,7 +35,7 @@ TEST(ElasticsearchLogsExporterTests, InvalidEndpoint) auto result = exporter->Export(nostd::span>(&record, 1)); // Ensure the return value is failure - ASSERT_EQ(result, sdklogs::ExportResult::kFailure); + ASSERT_EQ(result, sdk::common::ExportResult::kFailure); } // Test that when the exporter is shutdown, any call to Export should return failure @@ -52,7 +52,7 @@ TEST(ElasticsearchLogsExporterTests, Shutdown) auto result = exporter->Export(nostd::span>(&record, 1)); // Ensure the return value is failure - ASSERT_EQ(result, sdklogs::ExportResult::kFailure); + ASSERT_EQ(result, sdk::common::ExportResult::kFailure); } // Test the elasticsearch recordable object diff --git a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h index bf1ce497e6..6e36aadf0c 100644 --- a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h +++ b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h @@ -36,7 +36,7 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte * to add to the InMemorySpanData * @return Returns the result of the operation */ - sdk::trace::ExportResult Export( + sdk::common::ExportResult Export( const nostd::span> &recordables) noexcept override { for (auto &recordable : recordables) @@ -49,7 +49,7 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte } } - return sdk::trace::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } /** diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h index 2d23f5f672..62ca699991 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h @@ -46,7 +46,7 @@ class OStreamLogExporter final : public opentelemetry::sdk::logs::LogExporter /** * Exports a span of logs sent from the processor. */ - opentelemetry::sdk::logs::ExportResult Export( + opentelemetry::sdk::common::ExportResult Export( const opentelemetry::nostd::span> &records) noexcept override; diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h index 7486337769..6dd964168f 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h @@ -29,7 +29,7 @@ class OStreamMetricsExporter final : public sdkmetrics::MetricsExporter */ explicit OStreamMetricsExporter(std::ostream &sout = std::cout) noexcept; - sdkmetrics::ExportResult Export(const std::vector &records) noexcept override; + sdk::common::ExportResult Export(const std::vector &records) noexcept override; private: std::ostream &sout_; diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h index 07d8b63e75..8e360520d0 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h @@ -34,7 +34,7 @@ class OStreamSpanExporter final : public sdktrace::SpanExporter std::unique_ptr MakeRecordable() noexcept override; - sdktrace::ExportResult Export( + sdk::common::ExportResult Export( const nostd::span> &spans) noexcept override; bool Shutdown( diff --git a/exporters/ostream/src/log_exporter.cc b/exporters/ostream/src/log_exporter.cc index 37458df479..790614fa23 100644 --- a/exporters/ostream/src/log_exporter.cc +++ b/exporters/ostream/src/log_exporter.cc @@ -116,12 +116,12 @@ std::unique_ptr OStreamLogExporter::MakeRecordable() noexce return std::unique_ptr(new sdklogs::LogRecord()); } -sdklogs::ExportResult OStreamLogExporter::Export( +sdk::common::ExportResult OStreamLogExporter::Export( const nostd::span> &records) noexcept { if (is_shutdown_) { - return sdklogs::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } for (auto &record : records) @@ -175,7 +175,7 @@ sdklogs::ExportResult OStreamLogExporter::Export( << "}\n"; } - return sdklogs::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } bool OStreamLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept diff --git a/exporters/ostream/src/metrics_exporter.cc b/exporters/ostream/src/metrics_exporter.cc index 8f5755c87a..7ebaa7e386 100644 --- a/exporters/ostream/src/metrics_exporter.cc +++ b/exporters/ostream/src/metrics_exporter.cc @@ -8,7 +8,7 @@ namespace metrics OStreamMetricsExporter::OStreamMetricsExporter(std::ostream &sout) noexcept : sout_(sout) {} -sdkmetrics::ExportResult OStreamMetricsExporter::Export( +sdk::common::ExportResult OStreamMetricsExporter::Export( const std::vector &records) noexcept { for (auto record : records) @@ -42,7 +42,7 @@ sdkmetrics::ExportResult OStreamMetricsExporter::Export( } sout_ << "\n}\n"; } - return sdkmetrics::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } } // namespace metrics diff --git a/exporters/ostream/src/span_exporter.cc b/exporters/ostream/src/span_exporter.cc index e3c279abbc..be489f9aa8 100644 --- a/exporters/ostream/src/span_exporter.cc +++ b/exporters/ostream/src/span_exporter.cc @@ -36,12 +36,12 @@ std::unique_ptr OStreamSpanExporter::MakeRecordable() noex return std::unique_ptr(new sdktrace::SpanData); } -sdktrace::ExportResult OStreamSpanExporter::Export( +sdk::common::ExportResult OStreamSpanExporter::Export( const nostd::span> &spans) noexcept { if (isShutdown_) { - return sdktrace::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } for (auto &recordable : spans) @@ -76,7 +76,7 @@ sdktrace::ExportResult OStreamSpanExporter::Export( } } - return sdktrace::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } bool OStreamSpanExporter::Shutdown(std::chrono::microseconds timeout) noexcept diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_exporter.h index 687534084a..fd8d33dd05 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_exporter.h @@ -51,7 +51,7 @@ class OtlpExporter final : public opentelemetry::sdk::trace::SpanExporter * Export a batch of span recordables in OTLP format. * @param spans a span of unique pointers to span recordables */ - sdk::trace::ExportResult Export( + sdk::common::ExportResult Export( const nostd::span> &spans) noexcept override; /** diff --git a/exporters/otlp/src/otlp_exporter.cc b/exporters/otlp/src/otlp_exporter.cc index f7698531cb..20433c2393 100644 --- a/exporters/otlp/src/otlp_exporter.cc +++ b/exporters/otlp/src/otlp_exporter.cc @@ -87,7 +87,7 @@ std::unique_ptr OtlpExporter::MakeRecordable() noexcept return std::unique_ptr(new Recordable); } -sdk::trace::ExportResult OtlpExporter::Export( +sdk::common::ExportResult OtlpExporter::Export( const nostd::span> &spans) noexcept { proto::collector::trace::v1::ExportTraceServiceRequest request; @@ -102,9 +102,9 @@ sdk::trace::ExportResult OtlpExporter::Export( if (!status.ok()) { std::cerr << "[OTLP Exporter] Export() failed: " << status.error_message() << "\n"; - return sdk::trace::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } - return sdk::trace::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } } // namespace otlp } // namespace exporter diff --git a/exporters/otlp/test/otlp_exporter_test.cc b/exporters/otlp/test/otlp_exporter_test.cc index f23696ddad..c1e8e22fee 100644 --- a/exporters/otlp/test/otlp_exporter_test.cc +++ b/exporters/otlp/test/otlp_exporter_test.cc @@ -47,7 +47,7 @@ TEST_F(OtlpExporterTestPeer, ExportUnitTest) nostd::span> batch_1(&recordable_1, 1); EXPECT_CALL(*mock_stub, Export(_, _, _)).Times(Exactly(1)).WillOnce(Return(grpc::Status::OK)); auto result = exporter->Export(batch_1); - EXPECT_EQ(sdk::trace::ExportResult::kSuccess, result); + EXPECT_EQ(sdk::common::ExportResult::kSuccess, result); // Test failed RPC nostd::span> batch_2(&recordable_2, 1); @@ -55,7 +55,7 @@ TEST_F(OtlpExporterTestPeer, ExportUnitTest) .Times(Exactly(1)) .WillOnce(Return(grpc::Status::CANCELLED)); result = exporter->Export(batch_2); - EXPECT_EQ(sdk::trace::ExportResult::kFailure, result); + EXPECT_EQ(sdk::common::ExportResult::kFailure, result); } // Create spans, let processor call Export() diff --git a/exporters/zipkin/src/zipkin_exporter.cc b/exporters/zipkin/src/zipkin_exporter.cc index cae2cd2246..87bddb57bd 100644 --- a/exporters/zipkin/src/zipkin_exporter.cc +++ b/exporters/zipkin/src/zipkin_exporter.cc @@ -46,12 +46,12 @@ std::unique_ptr ZipkinExporter::MakeRecordable() noexcep return std::unique_ptr(new Recordable); } -sdk::trace::ExportResult ZipkinExporter::Export( +sdk::common::ExportResult ZipkinExporter::Export( const nostd::span> &spans) noexcept { if (isShutdown_) { - return sdk::trace::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } exporter::zipkin::ZipkinSpan json_spans = {}; for (auto &recordable : spans) @@ -71,7 +71,7 @@ sdk::trace::ExportResult ZipkinExporter::Export( if (result && result.GetResponse().GetStatusCode() == 200 || result.GetResponse().GetStatusCode() == 202) { - return sdk::trace::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } else { @@ -79,9 +79,9 @@ sdk::trace::ExportResult ZipkinExporter::Export( { // TODO -> Handle error / retries } - return sdk::trace::ExportResult::kFailure; + return sdk::common::ExportResult::kFailure; } - return sdk::trace::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } void ZipkinExporter::InitializeLocalEndpoint() diff --git a/sdk/include/opentelemetry/sdk/common/exporter_utils.h b/sdk/include/opentelemetry/sdk/common/exporter_utils.h new file mode 100644 index 0000000000..ff46bdcfb6 --- /dev/null +++ b/sdk/include/opentelemetry/sdk/common/exporter_utils.h @@ -0,0 +1,47 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace common +{ +/** + * ExportResult is returned as result of exporting a batch of Records. + */ +enum class ExportResult +{ + // Batch was exported successfully. + kSuccess = 0, + + // Batch exporting failed, caller must not retry exporting the same batch + // and the batch must be dropped. + kFailure = 1, + + // The collection does not have enough space to receive the export batch. + kFailureFull = 2, + + // The export() function was passed an invalid argument. + kFailureInvalidArgument = 3 +}; + +} // namespace common +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/include/opentelemetry/sdk/logs/exporter.h b/sdk/include/opentelemetry/sdk/logs/exporter.h index 4c01d5dabf..20aba6efd7 100644 --- a/sdk/include/opentelemetry/sdk/logs/exporter.h +++ b/sdk/include/opentelemetry/sdk/logs/exporter.h @@ -18,6 +18,7 @@ #include #include +#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/logs/processor.h" #include "opentelemetry/sdk/logs/recordable.h" @@ -27,17 +28,6 @@ namespace sdk { namespace logs { -/** - * ExportResult is returned as result of exporting a batch of Log Records. - */ -enum class ExportResult -{ - // The batch was exported successfully - kSuccess = 0, - // The batch was exported unsuccessfully and was dropped, but can not be retried - kFailure -}; - /** * LogExporter defines the interface that log exporters must implement. */ @@ -65,7 +55,7 @@ class LogExporter * @param records a span of unique pointers to log records * @returns an ExportResult code (whether export was success or failure) */ - virtual ExportResult Export(const nostd::span> &records) noexcept = 0; + virtual sdk::common::ExportResult Export(const nostd::span> &records) noexcept = 0; /** * Marks the exporter as ShutDown and cleans up any resources as required. diff --git a/sdk/include/opentelemetry/sdk/metrics/async_instruments.h b/sdk/include/opentelemetry/sdk/metrics/async_instruments.h index 69a723bb62..2ad6d26062 100644 --- a/sdk/include/opentelemetry/sdk/metrics/async_instruments.h +++ b/sdk/include/opentelemetry/sdk/metrics/async_instruments.h @@ -46,7 +46,7 @@ class ValueObserver : public AsynchronousInstrument, virtual public metrics_a * @param value is the numerical representation of the metric being captured * @param labels the set of labels, as key-value pairs */ - virtual void observe(T value, const common::KeyValueIterable &labels) override + virtual void observe(T value, const opentelemetry::common::KeyValueIterable &labels) override { this->mu_.lock(); std::string labelset = KvToString(labels); @@ -121,7 +121,7 @@ class SumObserver : public AsynchronousInstrument, virtual public metrics_api * @param value is the numerical representation of the metric being captured * @param labels the set of labels, as key-value pairs */ - virtual void observe(T value, const common::KeyValueIterable &labels) override + virtual void observe(T value, const opentelemetry::common::KeyValueIterable &labels) override { this->mu_.lock(); std::string labelset = KvToString(labels); @@ -219,7 +219,7 @@ class UpDownSumObserver : public AsynchronousInstrument, * @param value is the numerical representation of the metric being captured * @param labels the set of labels, as key-value pairs */ - virtual void observe(T value, const common::KeyValueIterable &labels) override + virtual void observe(T value, const opentelemetry::common::KeyValueIterable &labels) override { this->mu_.lock(); std::string labelset = KvToString(labels); diff --git a/sdk/include/opentelemetry/sdk/metrics/exporter.h b/sdk/include/opentelemetry/sdk/metrics/exporter.h index 5a66f11815..55d5221ac8 100644 --- a/sdk/include/opentelemetry/sdk/metrics/exporter.h +++ b/sdk/include/opentelemetry/sdk/metrics/exporter.h @@ -17,39 +17,14 @@ #pragma once #include +#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/sdk/metrics/record.h" -#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk { namespace metrics { -/** - * ExportResult is returned as result of exporting a batch of records. - */ -enum class ExportResult -{ - /** - * Batch was successfully exported. - */ - kSuccess = 0, - /** - * Exporting failed. The caller must not retry exporting the same batch; the - * batch must be dropped. - */ - kFailure = 1, - - /** - * The collection does not have enough space to receive the export batch. - */ - kFailureFull = 2, - - /** - * The export() function was passed an invalid argument. - */ - kFailureInvalidArgument = 3, -}; /** * MetricsExporter defines the interface that protocol-specific span exporters must * implement. @@ -64,7 +39,7 @@ class MetricsExporter * concurrently for the same exporter instance. * @param records a vector of unique pointers to metric records */ - virtual ExportResult Export(const std::vector &records) noexcept = 0; + virtual sdk::common::ExportResult Export(const std::vector &records) noexcept = 0; }; } // namespace metrics } // namespace sdk diff --git a/sdk/include/opentelemetry/sdk/metrics/instrument.h b/sdk/include/opentelemetry/sdk/metrics/instrument.h index b1a4c49009..439b6fe704 100644 --- a/sdk/include/opentelemetry/sdk/metrics/instrument.h +++ b/sdk/include/opentelemetry/sdk/metrics/instrument.h @@ -173,13 +173,13 @@ class SynchronousInstrument : public Instrument, * @return a Bound Instrument */ virtual nostd::shared_ptr> bind( - const common::KeyValueIterable &labels) override + const opentelemetry::common::KeyValueIterable &labels) override { return nostd::shared_ptr>(); } // This function is necessary for batch recording and should NOT be called by the user - virtual void update(T value, const common::KeyValueIterable &labels) override = 0; + virtual void update(T value, const opentelemetry::common::KeyValueIterable &labels) override = 0; /** * Checkpoints instruments and returns a set of records which are ready for processing. @@ -220,7 +220,7 @@ class AsynchronousInstrument : public Instrument, * @param labels is the numerical representation of the metric being captured * @return none */ - virtual void observe(T value, const common::KeyValueIterable &labels) override = 0; + virtual void observe(T value, const opentelemetry::common::KeyValueIterable &labels) override = 0; virtual std::vector GetRecords() = 0; @@ -237,12 +237,12 @@ class AsynchronousInstrument : public Instrument, // Helper functions for turning a common::KeyValueIterable into a string inline void print_value(std::stringstream &ss, - common::AttributeValue &value, + opentelemetry::common::AttributeValue &value, bool jsonTypes = false) { switch (value.index()) { - case common::AttributeType::kTypeString: + case opentelemetry::common::AttributeType::kTypeString: ss << nostd::get(value); @@ -270,7 +270,7 @@ inline std::string mapToString(const std::map &conv) return ss.str(); } -inline std::string KvToString(const common::KeyValueIterable &kv) noexcept +inline std::string KvToString(const opentelemetry::common::KeyValueIterable &kv) noexcept { std::stringstream ss; ss << "{"; @@ -278,7 +278,7 @@ inline std::string KvToString(const common::KeyValueIterable &kv) noexcept if (size) { size_t i = 1; - kv.ForEachKeyValue([&](nostd::string_view key, common::AttributeValue value) noexcept { + kv.ForEachKeyValue([&](nostd::string_view key, opentelemetry::common::AttributeValue value) noexcept { ss << key << ":"; print_value(ss, value, true); if (size != i) diff --git a/sdk/include/opentelemetry/sdk/metrics/meter.h b/sdk/include/opentelemetry/sdk/metrics/meter.h index 2f2592a858..860d89eeea 100644 --- a/sdk/include/opentelemetry/sdk/metrics/meter.h +++ b/sdk/include/opentelemetry/sdk/metrics/meter.h @@ -253,19 +253,19 @@ class Meter : public metrics_api::Meter * @param values a span of pairs where the first element of the pair is a metric instrument * to record to, and the second element is the value to update that instrument with. */ - void RecordShortBatch(const common::KeyValueIterable &labels, + void RecordShortBatch(const opentelemetry::common::KeyValueIterable &labels, nostd::span *> instruments, nostd::span values) noexcept override; - void RecordIntBatch(const common::KeyValueIterable &labels, + void RecordIntBatch(const opentelemetry::common::KeyValueIterable &labels, nostd::span *> instruments, nostd::span values) noexcept override; - void RecordFloatBatch(const common::KeyValueIterable &labels, + void RecordFloatBatch(const opentelemetry::common::KeyValueIterable &labels, nostd::span *> instruments, nostd::span values) noexcept override; - void RecordDoubleBatch(const common::KeyValueIterable &labels, + void RecordDoubleBatch(const opentelemetry::common::KeyValueIterable &labels, nostd::span *> instruments, nostd::span values) noexcept override; diff --git a/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h b/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h index 14d15ccf22..26aa6894f0 100644 --- a/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h +++ b/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h @@ -90,7 +90,7 @@ class Counter final : public SynchronousInstrument, public metrics_api::Count */ virtual nostd::shared_ptr> bindCounter( - const common::KeyValueIterable &labels) override + const opentelemetry::common::KeyValueIterable &labels) override { this->mu_.lock(); std::string labelset = KvToString(labels); @@ -119,7 +119,7 @@ class Counter final : public SynchronousInstrument, public metrics_api::Count * @param value the numerical representation of the metric being captured * @param labels the set of labels, as key-value pairs */ - virtual void add(T value, const common::KeyValueIterable &labels) override + virtual void add(T value, const opentelemetry::common::KeyValueIterable &labels) override { if (value < 0) { @@ -163,7 +163,7 @@ class Counter final : public SynchronousInstrument, public metrics_api::Count return ret; } - virtual void update(T val, const common::KeyValueIterable &labels) override { add(val, labels); } + virtual void update(T val, const opentelemetry::common::KeyValueIterable &labels) override { add(val, labels); } // A collection of the bound instruments created by this unbound instrument identified by their // labels. @@ -228,7 +228,7 @@ class UpDownCounter final : public SynchronousInstrument, public metrics_api: * @return a BoundIntCounter tied to the specified labels */ nostd::shared_ptr> bindUpDownCounter( - const common::KeyValueIterable &labels) override + const opentelemetry::common::KeyValueIterable &labels) override { this->mu_.lock(); std::string labelset = KvToString(labels); @@ -257,7 +257,7 @@ class UpDownCounter final : public SynchronousInstrument, public metrics_api: * @param value the numerical representation of the metric being captured * @param labels the set of labels, as key-value pairs */ - void add(T value, const common::KeyValueIterable &labels) override + void add(T value, const opentelemetry::common::KeyValueIterable &labels) override { auto sp = bindUpDownCounter(labels); sp->update(value); @@ -290,7 +290,7 @@ class UpDownCounter final : public SynchronousInstrument, public metrics_api: return ret; } - virtual void update(T val, const common::KeyValueIterable &labels) override { add(val, labels); } + virtual void update(T val, const opentelemetry::common::KeyValueIterable &labels) override { add(val, labels); } std::unordered_map>> boundInstruments_; @@ -354,7 +354,7 @@ class ValueRecorder final : public SynchronousInstrument, public metrics_api: * @return a BoundIntCounter tied to the specified labels */ nostd::shared_ptr> bindValueRecorder( - const common::KeyValueIterable &labels) override + const opentelemetry::common::KeyValueIterable &labels) override { this->mu_.lock(); std::string labelset = KvToString(labels); @@ -383,7 +383,7 @@ class ValueRecorder final : public SynchronousInstrument, public metrics_api: * @param value the numerical representation of the metric being captured * @param labels the set of labels, as key-value pairs */ - void record(T value, const common::KeyValueIterable &labels) override + void record(T value, const opentelemetry::common::KeyValueIterable &labels) override { auto sp = bindValueRecorder(labels); sp->update(value); @@ -416,7 +416,7 @@ class ValueRecorder final : public SynchronousInstrument, public metrics_api: return ret; } - virtual void update(T value, const common::KeyValueIterable &labels) override + virtual void update(T value, const opentelemetry::common::KeyValueIterable &labels) override { record(value, labels); } diff --git a/sdk/include/opentelemetry/sdk/trace/exporter.h b/sdk/include/opentelemetry/sdk/trace/exporter.h index f050c5f179..e298b0d0cb 100644 --- a/sdk/include/opentelemetry/sdk/trace/exporter.h +++ b/sdk/include/opentelemetry/sdk/trace/exporter.h @@ -1,6 +1,7 @@ #pragma once #include +#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/trace/recordable.h" @@ -9,21 +10,6 @@ namespace sdk { namespace trace { -/** - * ExportResult is returned as result of exporting a span batch. - */ -enum class ExportResult -{ - /** - * Batch was successfully exported. - */ - kSuccess = 0, - /** - * Exporting failed. The caller must not retry exporting the same batch; the - * batch must be dropped. - */ - kFailure -}; /** * SpanExporter defines the interface that protocol-specific span exporters must * implement. @@ -49,7 +35,7 @@ class SpanExporter * concurrently for the same exporter instance. * @param spans a span of unique pointers to span recordables */ - virtual ExportResult Export( + virtual sdk::common::ExportResult Export( const nostd::span> &spans) noexcept = 0; diff --git a/sdk/include/opentelemetry/sdk/trace/simple_processor.h b/sdk/include/opentelemetry/sdk/trace/simple_processor.h index 92612ae800..ac4148d576 100644 --- a/sdk/include/opentelemetry/sdk/trace/simple_processor.h +++ b/sdk/include/opentelemetry/sdk/trace/simple_processor.h @@ -45,7 +45,7 @@ class SimpleSpanProcessor : public SpanProcessor { nostd::span> batch(&span, 1); const std::lock_guard locked(lock_); - if (exporter_->Export(batch) == ExportResult::kFailure) + if (exporter_->Export(batch) == sdk::common::ExportResult::kFailure) { /* Once it is defined how the SDK does logging, an error should be * logged in this case. */ diff --git a/sdk/src/logs/simple_log_processor.cc b/sdk/src/logs/simple_log_processor.cc index d6b8dda477..0cc776ecd0 100644 --- a/sdk/src/logs/simple_log_processor.cc +++ b/sdk/src/logs/simple_log_processor.cc @@ -47,7 +47,7 @@ void SimpleLogProcessor::OnReceive(std::unique_ptr &&record) noexcep // Get lock to ensure Export() is never called concurrently const std::lock_guard locked(lock_); - if (exporter_->Export(batch) != ExportResult::kSuccess) + if (exporter_->Export(batch) != sdk::common::ExportResult::kSuccess) { /* Alert user of the failed export */ } diff --git a/sdk/test/logs/batch_log_processor_test.cc b/sdk/test/logs/batch_log_processor_test.cc index d489fe4772..7c9c769422 100644 --- a/sdk/test/logs/batch_log_processor_test.cc +++ b/sdk/test/logs/batch_log_processor_test.cc @@ -23,6 +23,7 @@ #include using namespace opentelemetry::sdk::logs; +using namespace opentelemetry::sdk::common; /** * A sample log exporter diff --git a/sdk/test/logs/simple_log_processor_test.cc b/sdk/test/logs/simple_log_processor_test.cc index c653401f47..2791cd22d8 100644 --- a/sdk/test/logs/simple_log_processor_test.cc +++ b/sdk/test/logs/simple_log_processor_test.cc @@ -9,6 +9,7 @@ #include using namespace opentelemetry::sdk::logs; +using namespace opentelemetry::sdk::common; /* * A test exporter that can return a vector of all the records it has received, diff --git a/sdk/test/metrics/controller_test.cc b/sdk/test/metrics/controller_test.cc index dad5012f9f..078d4330c5 100644 --- a/sdk/test/metrics/controller_test.cc +++ b/sdk/test/metrics/controller_test.cc @@ -8,6 +8,7 @@ // #include namespace metrics_api = opentelemetry::metrics; +using namespace opentelemetry::sdk::common; OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk @@ -34,7 +35,7 @@ TEST(Controller, Constructor) auto instr = meter->NewIntCounter("test", "none", "none", true); std::map labels = {{"key", "value"}}; - auto labelkv = common::KeyValueIterableView{labels}; + auto labelkv = opentelemetry::common::KeyValueIterableView{labels}; alpha.start(); diff --git a/sdk/test/trace/batch_span_processor_test.cc b/sdk/test/trace/batch_span_processor_test.cc index 64925f8f23..0f3cd7ed1b 100644 --- a/sdk/test/trace/batch_span_processor_test.cc +++ b/sdk/test/trace/batch_span_processor_test.cc @@ -31,7 +31,7 @@ class MockSpanExporter final : public sdk::trace::SpanExporter return std::unique_ptr(new sdk::trace::SpanData); } - sdk::trace::ExportResult Export( + sdk::common::ExportResult Export( const nostd::span> &recordables) noexcept override { *is_export_completed_ = false; @@ -50,7 +50,7 @@ class MockSpanExporter final : public sdk::trace::SpanExporter } *is_export_completed_ = true; - return sdk::trace::ExportResult::kSuccess; + return sdk::common::ExportResult::kSuccess; } bool Shutdown( diff --git a/sdk/test/trace/simple_processor_test.cc b/sdk/test/trace/simple_processor_test.cc index 0e86ac2471..4b92ebfd0e 100644 --- a/sdk/test/trace/simple_processor_test.cc +++ b/sdk/test/trace/simple_processor_test.cc @@ -7,6 +7,7 @@ #include using namespace opentelemetry::sdk::trace; +using namespace opentelemetry::sdk::common; using opentelemetry::exporter::memory::InMemorySpanData; using opentelemetry::exporter::memory::InMemorySpanExporter; using opentelemetry::trace::SpanContext; From 230f7b2aa7b8f1d98af749a372d2afd0bd835648 Mon Sep 17 00:00:00 2001 From: Anshul Kumar Date: Tue, 6 Apr 2021 14:09:05 +0530 Subject: [PATCH 2/3] formatting and copyright message year addition --- .../exporters/ostream/metrics_exporter.h | 3 ++- .../opentelemetry/sdk/common/exporter_utils.h | 2 +- sdk/include/opentelemetry/sdk/logs/exporter.h | 5 +++-- .../opentelemetry/sdk/metrics/instrument.h | 21 ++++++++++--------- .../sdk/metrics/sync_instruments.h | 10 +++++++-- .../opentelemetry/sdk/trace/exporter.h | 2 +- 6 files changed, 26 insertions(+), 17 deletions(-) diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h index 6dd964168f..1a97682dfe 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/metrics_exporter.h @@ -29,7 +29,8 @@ class OStreamMetricsExporter final : public sdkmetrics::MetricsExporter */ explicit OStreamMetricsExporter(std::ostream &sout = std::cout) noexcept; - sdk::common::ExportResult Export(const std::vector &records) noexcept override; + sdk::common::ExportResult Export( + const std::vector &records) noexcept override; private: std::ostream &sout_; diff --git a/sdk/include/opentelemetry/sdk/common/exporter_utils.h b/sdk/include/opentelemetry/sdk/common/exporter_utils.h index ff46bdcfb6..35945ed7c1 100644 --- a/sdk/include/opentelemetry/sdk/common/exporter_utils.h +++ b/sdk/include/opentelemetry/sdk/common/exporter_utils.h @@ -1,5 +1,5 @@ /* - * Copyright The OpenTelemetry Authors + * Copyright 2021, The OpenTelemetry Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/sdk/include/opentelemetry/sdk/logs/exporter.h b/sdk/include/opentelemetry/sdk/logs/exporter.h index 20aba6efd7..7963a66751 100644 --- a/sdk/include/opentelemetry/sdk/logs/exporter.h +++ b/sdk/include/opentelemetry/sdk/logs/exporter.h @@ -18,8 +18,8 @@ #include #include -#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/nostd/span.h" +#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/sdk/logs/processor.h" #include "opentelemetry/sdk/logs/recordable.h" @@ -55,7 +55,8 @@ class LogExporter * @param records a span of unique pointers to log records * @returns an ExportResult code (whether export was success or failure) */ - virtual sdk::common::ExportResult Export(const nostd::span> &records) noexcept = 0; + virtual sdk::common::ExportResult Export( + const nostd::span> &records) noexcept = 0; /** * Marks the exporter as ShutDown and cleans up any resources as required. diff --git a/sdk/include/opentelemetry/sdk/metrics/instrument.h b/sdk/include/opentelemetry/sdk/metrics/instrument.h index 439b6fe704..873598d2b2 100644 --- a/sdk/include/opentelemetry/sdk/metrics/instrument.h +++ b/sdk/include/opentelemetry/sdk/metrics/instrument.h @@ -278,16 +278,17 @@ inline std::string KvToString(const opentelemetry::common::KeyValueIterable &kv) if (size) { size_t i = 1; - kv.ForEachKeyValue([&](nostd::string_view key, opentelemetry::common::AttributeValue value) noexcept { - ss << key << ":"; - print_value(ss, value, true); - if (size != i) - { - ss << ","; - } - i++; - return true; - }); + kv.ForEachKeyValue( + [&](nostd::string_view key, opentelemetry::common::AttributeValue value) noexcept { + ss << key << ":"; + print_value(ss, value, true); + if (size != i) + { + ss << ","; + } + i++; + return true; + }); }; ss << "}"; return ss.str(); diff --git a/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h b/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h index 26aa6894f0..b754c19c56 100644 --- a/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h +++ b/sdk/include/opentelemetry/sdk/metrics/sync_instruments.h @@ -163,7 +163,10 @@ class Counter final : public SynchronousInstrument, public metrics_api::Count return ret; } - virtual void update(T val, const opentelemetry::common::KeyValueIterable &labels) override { add(val, labels); } + virtual void update(T val, const opentelemetry::common::KeyValueIterable &labels) override + { + add(val, labels); + } // A collection of the bound instruments created by this unbound instrument identified by their // labels. @@ -290,7 +293,10 @@ class UpDownCounter final : public SynchronousInstrument, public metrics_api: return ret; } - virtual void update(T val, const opentelemetry::common::KeyValueIterable &labels) override { add(val, labels); } + virtual void update(T val, const opentelemetry::common::KeyValueIterable &labels) override + { + add(val, labels); + } std::unordered_map>> boundInstruments_; diff --git a/sdk/include/opentelemetry/sdk/trace/exporter.h b/sdk/include/opentelemetry/sdk/trace/exporter.h index e298b0d0cb..3605e3c967 100644 --- a/sdk/include/opentelemetry/sdk/trace/exporter.h +++ b/sdk/include/opentelemetry/sdk/trace/exporter.h @@ -1,8 +1,8 @@ #pragma once #include -#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/nostd/span.h" +#include "opentelemetry/sdk/common/exporter_utils.h" #include "opentelemetry/sdk/trace/recordable.h" OPENTELEMETRY_BEGIN_NAMESPACE From ab225047429c3b6114eced9b6e8f69dc186b1f4f Mon Sep 17 00:00:00 2001 From: Anshul Kumar Date: Tue, 6 Apr 2021 18:21:25 +0530 Subject: [PATCH 3/3] fixing zipkin exporter --- .../include/opentelemetry/exporters/zipkin/zipkin_exporter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h index f1697da504..0d2927f909 100644 --- a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h +++ b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h @@ -80,7 +80,7 @@ class ZipkinExporter final : public trace_sdk::SpanExporter * Export a batch of span recordables in JSON format. * @param spans a span of unique pointers to span recordables */ - trace_sdk::ExportResult Export( + sdk::common::ExportResult Export( const nostd::span> &spans) noexcept override; /**