Skip to content

Commit

Permalink
[opentelemetry-cpp] Update to 1.13.0
Browse files Browse the repository at this point in the history
The patch to add a dependency of opentelemetry-proto on gRPC should
not be needed after the upstream changes in:

open-telemetry/opentelemetry-cpp#2268

Additionally, the "zpages" feature is removed as it is no longer
present upstream after having been deprecated in a previous release.

A patch is added extracted from open-telemetry/opentelemetry-cpp#2475
and open-telemetry/opentelemetry-cpp#2449
which fix problems that arose after `NOMINMAX` was no longer
defined within opentelemetry-cpp on Windows.

Fixes #35992.
  • Loading branch information
waywardmonkeys committed Jan 4, 2024
1 parent 45c8b19 commit a3937b6
Show file tree
Hide file tree
Showing 6 changed files with 235 additions and 27 deletions.
15 changes: 0 additions & 15 deletions ports/opentelemetry-cpp/add-missing-dependencies.patch

This file was deleted.

224 changes: 224 additions & 0 deletions ports/opentelemetry-cpp/fix-nominmax-problems.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
diff --git a/api/include/opentelemetry/std/span.h b/api/include/opentelemetry/std/span.h
index 2a3dc12a84..1160d54fbe 100644
--- a/api/include/opentelemetry/std/span.h
+++ b/api/include/opentelemetry/std/span.h
@@ -60,7 +60,7 @@ OPENTELEMETRY_END_NAMESPACE
OPENTELEMETRY_BEGIN_NAMESPACE
namespace nostd
{
-constexpr std::size_t dynamic_extent = (std::numeric_limits<std::size_t>::max());
+constexpr std::size_t dynamic_extent = (std::numeric_limits<std::size_t>::max)();

template <class ElementType, std::size_t Extent = nostd::dynamic_extent>
using span = std::span<ElementType, Extent>;
index 7deb369ab3..6da8bdd032 100644
--- a/docs/cpp-ostream-exporter-design.md
+++ b/docs/cpp-ostream-exporter-design.md
@@ -154,7 +154,7 @@ public:
return sdktrace::ExportResult::kSuccess;
}

- bool Shutdown(std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept
+ bool Shutdown(std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept
{
isShutdown = true;
return true;
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 8579c99138..b72ff4f917 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
@@ -100,14 +100,14 @@ class ElasticsearchLogRecordExporter final : public opentelemetry::sdk::logs::Lo
* @return return true when all data are exported, and false when timeout
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shutdown this exporter.
* @param timeout The maximum time to wait for the shutdown method to return
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

private:
// Stores if this exporter had its Shutdown() method called
diff --git a/exporters/elasticsearch/src/es_log_record_exporter.cc b/exporters/elasticsearch/src/es_log_record_exporter.cc
index c90072e4e4..e167faf3d9 100644
--- a/exporters/elasticsearch/src/es_log_record_exporter.cc
+++ b/exporters/elasticsearch/src/es_log_record_exporter.cc
@@ -430,7 +430,7 @@ bool ElasticsearchLogRecordExporter::ForceFlush(
std::chrono::duration_cast<std::chrono::steady_clock::duration>(timeout);
if (timeout_steady <= std::chrono::steady_clock::duration::zero())
{
- timeout_steady = std::chrono::steady_clock::duration::max();
+ timeout_steady = (std::chrono::steady_clock::duration::max)();
}

std::unique_lock<std::mutex> lk_cv(synchronization_data_->force_flush_cv_m);
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 7aff1e24a5..870e5a043a 100644
--- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h
+++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h
@@ -58,7 +58,7 @@ class OtlpGrpcExporter final : public opentelemetry::sdk::trace::SpanExporter
* @return return true when all data are exported, and false when timeout
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shut down the exporter.
@@ -67,7 +67,7 @@ class OtlpGrpcExporter final : public opentelemetry::sdk::trace::SpanExporter
* @return return the status of this operation
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

private:
// The configuration options associated with this 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 29333703b1..f1cd96888c 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
@@ -60,14 +60,14 @@ class OtlpGrpcLogRecordExporter : public opentelemetry::sdk::logs::LogRecordExpo
* @return return true when all data are exported, and false when timeout
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shutdown this exporter.
* @param timeout The maximum time to wait for the shutdown method to return.
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

private:
// Configuration options for the exporter
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 1adbbc70b9..b5faf1a9b8 100644
--- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter.h
+++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_exporter.h
@@ -59,7 +59,7 @@ class OPENTELEMETRY_EXPORT OtlpHttpExporter final : public opentelemetry::sdk::t
* @return return true when all data are exported, and false when timeout
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shut down the exporter.
@@ -68,7 +68,7 @@ class OPENTELEMETRY_EXPORT OtlpHttpExporter final : public opentelemetry::sdk::t
* @return return the status of this operation
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

private:
// The configuration options associated with this exporter.
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 4393345dfd..f481fdab0b 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
@@ -58,14 +58,14 @@ class OtlpHttpLogRecordExporter final : public opentelemetry::sdk::logs::LogReco
* @return return true when all data are exported, and false when timeout
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shutdown this exporter.
* @param timeout The maximum time to wait for the shutdown method to return
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

private:
// Configuration options for the exporter
diff --git a/exporters/otlp/src/otlp_http_client.cc b/exporters/otlp/src/otlp_http_client.cc
index 9c57a9bd83..7814199ef2 100644
--- a/exporters/otlp/src/otlp_http_client.cc
+++ b/exporters/otlp/src/otlp_http_client.cc
@@ -782,7 +782,7 @@ bool OtlpHttpClient::ForceFlush(std::chrono::microseconds timeout) noexcept
std::chrono::duration_cast<std::chrono::steady_clock::duration>(timeout);
if (timeout_steady <= std::chrono::steady_clock::duration::zero())
{
- timeout_steady = std::chrono::steady_clock::duration::max();
+ timeout_steady = (std::chrono::steady_clock::duration::max)();
}

while (timeout_steady > std::chrono::steady_clock::duration::zero())
diff --git a/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor.h b/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor.h
index e93ebf3d6b..d6a44df142 100644
--- a/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor.h
+++ b/sdk/include/opentelemetry/sdk/logs/batch_log_record_processor.h
@@ -72,7 +72,7 @@ class BatchLogRecordProcessor : public LogRecordProcessor
* NOTE: Timeout functionality not supported yet.
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shuts down the processor and does any cleanup required. Completely drains the buffer/queue of
@@ -82,7 +82,7 @@ class BatchLogRecordProcessor : public LogRecordProcessor
* NOTE: Timeout functionality not supported yet.
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Class destructor which invokes the Shutdown() method.
diff --git a/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor.h b/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor.h
index 335da7f668..8ca5cffcca 100644
--- a/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor.h
+++ b/sdk/include/opentelemetry/sdk/logs/multi_log_record_processor.h
@@ -45,7 +45,7 @@ class MultiLogRecordProcessor : public LogRecordProcessor
* @return a result code indicating whether it succeeded, failed or timed out
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shuts down the processor and does any cleanup required.
@@ -55,7 +55,7 @@ class MultiLogRecordProcessor : public LogRecordProcessor
* @return true if the shutdown succeeded, false otherwise
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

private:
std::vector<std::unique_ptr<LogRecordProcessor>> processors_;
diff --git a/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h b/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h
index a748b06361..afbf4486b0 100644
--- a/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h
+++ b/sdk/include/opentelemetry/sdk/trace/batch_span_processor.h
@@ -69,7 +69,7 @@ class BatchSpanProcessor : public SpanProcessor
* NOTE: Timeout functionality not supported yet.
*/
bool ForceFlush(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Shuts down the processor and does any cleanup required. Completely drains the buffer/queue of
@@ -79,7 +79,7 @@ class BatchSpanProcessor : public SpanProcessor
* NOTE: Timeout functionality not supported yet.
*/
bool Shutdown(
- std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override;
+ std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;

/**
* Class destructor which invokes the Shutdown() method. The Shutdown() method is supposed to be
8 changes: 3 additions & 5 deletions ports/opentelemetry-cpp/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO open-telemetry/opentelemetry-cpp
REF "v${VERSION}"
SHA512 55553e3695adbc446264a4589fe8e3b2a284c0aac50ce2a09f76913bc8c0196b8ec8f79a32366c4473196332d4bff058793fe54ad2e95350fc046e3d148c8abb
SHA512 38a3796a5f4c28fd54cc2a5475b3a024e2e73594acbc635fccc6358bf4d93ae897fc0ce55a93d27736a08622869ccc9fe9a9ee62e3884adadb3f135c27d378ec
HEAD_REF main
PATCHES
# When compiling code generated by gRPC we need to link the gRPC library
# too.
add-missing-dependencies.patch
# Missing find_dependency for Abseil
add-missing-find-dependency.patch
# Fix problems from removing NOMINMAX on Windows. Fixed in 1.14.0
fix-nominmax-problems.patch
)

vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
Expand All @@ -24,7 +23,6 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
elasticsearch WITH_ELASTICSEARCH
jaeger WITH_JAEGER
otlp-http WITH_OTLP_HTTP
zpages WITH_ZPAGES
otlp-grpc WITH_OTLP_GRPC
)

Expand Down
6 changes: 1 addition & 5 deletions ports/opentelemetry-cpp/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
"name": "opentelemetry-cpp",
"version-semver": "1.12.0",
"port-version": 1,
"version-semver": "1.13.0",
"description": [
"OpenTelemetry is a collection of tools, APIs, and SDKs.",
"You use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior."
Expand Down Expand Up @@ -87,9 +86,6 @@
},
"zipkin": {
"description": "Whether to include the Zipkin exporter in the SDK"
},
"zpages": {
"description": "Whether to include the Zpages Server in the SDK"
}
}
}
4 changes: 2 additions & 2 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -6361,8 +6361,8 @@
"port-version": 1
},
"opentelemetry-cpp": {
"baseline": "1.12.0",
"port-version": 1
"baseline": "1.13.0",
"port-version": 0
},
"opentelemetry-fluentd": {
"baseline": "2.0.0",
Expand Down
5 changes: 5 additions & 0 deletions versions/o-/opentelemetry-cpp.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "ee3f9ecfa4b682ab5d0ed2bb020d4e34f642cb7a",
"version-semver": "1.13.0",
"port-version": 0
},
{
"git-tree": "71dd31a63ee43f477bad710ccce04ffac2be5238",
"version-semver": "1.12.0",
Expand Down

0 comments on commit a3937b6

Please sign in to comment.