diff --git a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h index a69eaf9caf..cb244867d7 100644 --- a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h +++ b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h @@ -17,11 +17,11 @@ namespace exporter namespace zipkin { -const char *kZipkinEndpointDefault = "http://localhost:9411/api/v2/spans"; - -static const std::string GetDefaultZipkinEndpoint() +inline const std::string GetDefaultZipkinEndpoint() { const char *otel_exporter_zipkin_endpoint_env = "OTEL_EXPORTER_ZIPKIN_ENDPOINT"; + const char *kZipkinEndpointDefault = "http://localhost:9411/api/v2/spans"; + #if defined(_MSC_VER) // avoid calling std::getenv which is deprecated in MSVC. size_t required_size = 0; diff --git a/exporters/zipkin/src/recordable.cc b/exporters/zipkin/src/recordable.cc index bbdc85c548..07d9b09c9d 100644 --- a/exporters/zipkin/src/recordable.cc +++ b/exporters/zipkin/src/recordable.cc @@ -225,7 +225,7 @@ void Recordable::SetStartTime(opentelemetry::common::SystemTimestamp start_time) void Recordable::SetDuration(std::chrono::nanoseconds duration) noexcept { - span_["duration"] = duration.count(); + span_["duration"] = std::chrono::duration_cast(duration).count(); } void Recordable::SetSpanKind(opentelemetry::trace::SpanKind span_kind) noexcept diff --git a/exporters/zipkin/test/zipkin_recordable_test.cc b/exporters/zipkin/test/zipkin_recordable_test.cc index 51ba1024b6..7a5feb8bdb 100644 --- a/exporters/zipkin/test/zipkin_recordable_test.cc +++ b/exporters/zipkin/test/zipkin_recordable_test.cc @@ -12,8 +12,6 @@ #include "opentelemetry/common/timestamp.h" #include "opentelemetry/exporters/zipkin/recordable.h" -#include - #include namespace trace = opentelemetry::trace; @@ -69,16 +67,16 @@ TEST(ZipkinSpanRecordable, SetStartTime) TEST(ZipkinSpanRecordable, SetDuration) { - json j_span = {{"duration", 10}, {"timestamp", 0}}; + std::chrono::nanoseconds durationNS(1000000000); // in ns + std::chrono::microseconds durationMS = + std::chrono::duration_cast(durationNS); // in ms + json j_span = {{"duration", durationMS.count()}, {"timestamp", 0}}; opentelemetry::exporter::zipkin::Recordable rec; // Start time is 0 opentelemetry::common::SystemTimestamp start_timestamp; - std::chrono::nanoseconds duration(10); - uint64_t unix_end = duration.count(); - rec.SetStartTime(start_timestamp); - rec.SetDuration(duration); + rec.SetDuration(durationNS); EXPECT_EQ(rec.span(), j_span); }