Skip to content

Commit

Permalink
Refactor/duplicate enums (#658)
Browse files Browse the repository at this point in the history
  • Loading branch information
anshulkumar1919 authored Apr 9, 2021
1 parent 7a0745d commit 9a99b97
Show file tree
Hide file tree
Showing 30 changed files with 136 additions and 125 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<std::unique_ptr<sdk::logs::Recordable>> &records) noexcept override;

/**
Expand Down
10 changes: 5 additions & 5 deletions exporters/elasticsearch/src/es_log_exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ std::unique_ptr<sdklogs::Recordable> ElasticsearchLogExporter::MakeRecordable()
return std::unique_ptr<sdklogs::Recordable>(new ElasticSearchRecordable);
}

sdklogs::ExportResult ElasticsearchLogExporter::Export(
sdk::common::ExportResult ElasticsearchLogExporter::Export(
const nostd::span<std::unique_ptr<sdklogs::Recordable>> &records) noexcept
{
// Return failure if this exporter has been shutdown
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
4 changes: 2 additions & 2 deletions exporters/elasticsearch/test/es_log_exporter_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ TEST(ElasticsearchLogsExporterTests, InvalidEndpoint)
auto result = exporter->Export(nostd::span<std::unique_ptr<sdklogs::Recordable>>(&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
Expand All @@ -52,7 +52,7 @@ TEST(ElasticsearchLogsExporterTests, Shutdown)
auto result = exporter->Export(nostd::span<std::unique_ptr<sdklogs::Recordable>>(&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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<std::unique_ptr<sdk::trace::Recordable>> &recordables) noexcept override
{
for (auto &recordable : recordables)
Expand All @@ -49,7 +49,7 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte
}
}

return sdk::trace::ExportResult::kSuccess;
return sdk::common::ExportResult::kSuccess;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<std::unique_ptr<sdk::logs::Recordable>> &records) noexcept
override;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ class OStreamMetricsExporter final : public sdkmetrics::MetricsExporter
*/
explicit OStreamMetricsExporter(std::ostream &sout = std::cout) noexcept;

sdkmetrics::ExportResult Export(const std::vector<sdkmetrics::Record> &records) noexcept override;
sdk::common::ExportResult Export(
const std::vector<sdkmetrics::Record> &records) noexcept override;

private:
std::ostream &sout_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class OStreamSpanExporter final : public sdktrace::SpanExporter

std::unique_ptr<sdktrace::Recordable> MakeRecordable() noexcept override;

sdktrace::ExportResult Export(
sdk::common::ExportResult Export(
const nostd::span<std::unique_ptr<sdktrace::Recordable>> &spans) noexcept override;

bool Shutdown(
Expand Down
6 changes: 3 additions & 3 deletions exporters/ostream/src/log_exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,12 @@ std::unique_ptr<sdklogs::Recordable> OStreamLogExporter::MakeRecordable() noexce
return std::unique_ptr<sdklogs::Recordable>(new sdklogs::LogRecord());
}

sdklogs::ExportResult OStreamLogExporter::Export(
sdk::common::ExportResult OStreamLogExporter::Export(
const nostd::span<std::unique_ptr<sdklogs::Recordable>> &records) noexcept
{
if (is_shutdown_)
{
return sdklogs::ExportResult::kFailure;
return sdk::common::ExportResult::kFailure;
}

for (auto &record : records)
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions exporters/ostream/src/metrics_exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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<sdk::metrics::Record> &records) noexcept
{
for (auto record : records)
Expand Down Expand Up @@ -42,7 +42,7 @@ sdkmetrics::ExportResult OStreamMetricsExporter::Export(
}
sout_ << "\n}\n";
}
return sdkmetrics::ExportResult::kSuccess;
return sdk::common::ExportResult::kSuccess;
}

} // namespace metrics
Expand Down
6 changes: 3 additions & 3 deletions exporters/ostream/src/span_exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ std::unique_ptr<sdktrace::Recordable> OStreamSpanExporter::MakeRecordable() noex
return std::unique_ptr<sdktrace::Recordable>(new sdktrace::SpanData);
}

sdktrace::ExportResult OStreamSpanExporter::Export(
sdk::common::ExportResult OStreamSpanExporter::Export(
const nostd::span<std::unique_ptr<sdktrace::Recordable>> &spans) noexcept
{
if (isShutdown_)
{
return sdktrace::ExportResult::kFailure;
return sdk::common::ExportResult::kFailure;
}

for (auto &recordable : spans)
Expand Down Expand Up @@ -80,7 +80,7 @@ sdktrace::ExportResult OStreamSpanExporter::Export(
}
}

return sdktrace::ExportResult::kSuccess;
return sdk::common::ExportResult::kSuccess;
}

bool OStreamSpanExporter::Shutdown(std::chrono::microseconds timeout) noexcept
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,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<std::unique_ptr<sdk::trace::Recordable>> &spans) noexcept override;

/**
Expand Down
6 changes: 3 additions & 3 deletions exporters/otlp/src/otlp_exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ std::unique_ptr<sdk::trace::Recordable> OtlpExporter::MakeRecordable() noexcept
return std::unique_ptr<sdk::trace::Recordable>(new Recordable);
}

sdk::trace::ExportResult OtlpExporter::Export(
sdk::common::ExportResult OtlpExporter::Export(
const nostd::span<std::unique_ptr<sdk::trace::Recordable>> &spans) noexcept
{
proto::collector::trace::v1::ExportTraceServiceRequest request;
Expand All @@ -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
Expand Down
4 changes: 2 additions & 2 deletions exporters/otlp/test/otlp_exporter_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ TEST_F(OtlpExporterTestPeer, ExportUnitTest)
nostd::span<std::unique_ptr<sdk::trace::Recordable>> 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<std::unique_ptr<sdk::trace::Recordable>> batch_2(&recordable_2, 1);
EXPECT_CALL(*mock_stub, Export(_, _, _))
.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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<std::unique_ptr<trace_sdk::Recordable>> &spans) noexcept override;

/**
Expand Down
10 changes: 5 additions & 5 deletions exporters/zipkin/src/zipkin_exporter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ std::unique_ptr<sdk::trace::Recordable> ZipkinExporter::MakeRecordable() noexcep
return std::unique_ptr<sdk::trace::Recordable>(new Recordable);
}

sdk::trace::ExportResult ZipkinExporter::Export(
sdk::common::ExportResult ZipkinExporter::Export(
const nostd::span<std::unique_ptr<sdk::trace::Recordable>> &spans) noexcept
{
if (isShutdown_)
{
return sdk::trace::ExportResult::kFailure;
return sdk::common::ExportResult::kFailure;
}
exporter::zipkin::ZipkinSpan json_spans = {};
for (auto &recordable : spans)
Expand All @@ -71,17 +71,17 @@ 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
{
if (result.GetSessionState() == http_client::SessionState::ConnectFailed)
{
// 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()
Expand Down
47 changes: 47 additions & 0 deletions sdk/include/opentelemetry/sdk/common/exporter_utils.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* 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.
* 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
15 changes: 3 additions & 12 deletions sdk/include/opentelemetry/sdk/logs/exporter.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <memory>
#include <vector>
#include "opentelemetry/nostd/span.h"
#include "opentelemetry/sdk/common/exporter_utils.h"
#include "opentelemetry/sdk/logs/processor.h"
#include "opentelemetry/sdk/logs/recordable.h"

Expand All @@ -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.
*/
Expand Down Expand Up @@ -65,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 ExportResult Export(const nostd::span<std::unique_ptr<Recordable>> &records) noexcept = 0;
virtual sdk::common::ExportResult Export(
const nostd::span<std::unique_ptr<Recordable>> &records) noexcept = 0;

/**
* Marks the exporter as ShutDown and cleans up any resources as required.
Expand Down
6 changes: 3 additions & 3 deletions sdk/include/opentelemetry/sdk/metrics/async_instruments.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class ValueObserver : public AsynchronousInstrument<T>, 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);
Expand Down Expand Up @@ -121,7 +121,7 @@ class SumObserver : public AsynchronousInstrument<T>, 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);
Expand Down Expand Up @@ -219,7 +219,7 @@ class UpDownSumObserver : public AsynchronousInstrument<T>,
* @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);
Expand Down
Loading

0 comments on commit 9a99b97

Please sign in to comment.