Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Commit bf55d9d

Browse files
Privacy Sandbox Teamcopybara-github
authored andcommitted
feat: Upgrade io_opentelemetry_cpp to 1.20.0
This reverts commit f2c4e4d, which is the revert of "feat(deps): Upgrade io_opentelemetry_cpp to 1.17.0". This CL also contains additional fixes needed for the upgrade to 1.20.0. Bug: b/410654574 Change-Id: I664d8b3e5f4d4dd28b1bfae54c3b984ee327269f GitOrigin-RevId: 058a423c6731e57bb588a2369cd61390c68d0921
1 parent 599f2ef commit bf55d9d

10 files changed

Lines changed: 68 additions & 28 deletions

File tree

.bazelrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,11 @@ build:ubsan --copt=-fno-sanitize=function
150150
build:ubsan --copt=-fno-sanitize=vptr
151151
build:ubsan --test_tag_filters=-noubsan
152152

153-
# Required to build OpenTelemetry with Abseil
154-
build:otel --@io_opentelemetry_cpp//api:with_abseil
155153
# Required to build OpenTelemtry with logs API.
156154
# TODO(b/287675870): Delete the following when the feature is no longer experimental.
157155
build:otel --copt=-DENABLE_LOGS_PREVIEW
156+
# Ensure binary compatibility with OpenTelemetry ABI version 2.
157+
build:otel --@io_opentelemetry_cpp//api:abi_version_no=2
158158

159159
build:instance_local --//:instance=local
160160

src/metric/metric_router.cc

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,17 @@ void MetricRouter::AddHistogramView(
5050
histogram_boundaries.begin(), histogram_boundaries.end());
5151
auto* sdk_meter = static_cast<sdk::Meter*>(meter_);
5252
static_cast<sdk::MeterProvider*>(provider_.get())
53-
->AddView(
54-
std::make_unique<sdk::InstrumentSelector>(
55-
sdk::InstrumentType::kHistogram, instrument_name.data()),
56-
std::make_unique<sdk::MeterSelector>(
57-
sdk_meter->GetInstrumentationScope()->GetName(),
58-
sdk_meter->GetInstrumentationScope()->GetVersion(),
59-
sdk_meter->GetInstrumentationScope()->GetSchemaURL()),
60-
// First 2 arguments use empty string, so not to overwrite
61-
// instrument's name and description
62-
std::make_unique<sdk::View>("", "", sdk::AggregationType::kHistogram,
63-
aggregation_config));
53+
->AddView(std::make_unique<sdk::InstrumentSelector>(
54+
sdk::InstrumentType::kHistogram,
55+
std::string(instrument_name), /*unit=*/""),
56+
std::make_unique<sdk::MeterSelector>(
57+
sdk_meter->GetInstrumentationScope()->GetName(),
58+
sdk_meter->GetInstrumentationScope()->GetVersion(),
59+
sdk_meter->GetInstrumentationScope()->GetSchemaURL()),
60+
// First three arguments use empty string, so not to overwrite
61+
// the instrument's name, description and units
62+
std::make_unique<sdk::View>(
63+
/*name=*/"", /*description=*/"", /*unit=*/"",
64+
sdk::AggregationType::kHistogram, aggregation_config));
6465
}
6566
} // namespace privacy_sandbox::server_common::metrics

src/telemetry/init_aws.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h"
1616
#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h"
1717
#include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h"
18+
#include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h"
1819
#include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h"
1920
#include "opentelemetry/sdk/trace/random_id_generator_factory.h"
2021

@@ -42,7 +43,7 @@ CreatePeriodicExportingMetricReader(
4243
absl::optional<std::string> collector_endpoint) {
4344
opentelemetry::exporter::otlp::OtlpGrpcMetricExporterOptions exporter_options;
4445
exporter_options.aggregation_temporality =
45-
opentelemetry::sdk::metrics::AggregationTemporality::kDelta;
46+
opentelemetry::exporter::otlp::PreferredAggregationTemporality::kDelta;
4647
if (collector_endpoint.has_value() && !collector_endpoint->empty()) {
4748
exporter_options.endpoint = *collector_endpoint;
4849
}
@@ -56,7 +57,7 @@ CreatePeriodicExportingMetricReader(
5657

5758
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter>
5859
CreateLogRecordExporter(absl::optional<std::string> collector_endpoint) {
59-
opentelemetry::exporter::otlp::OtlpGrpcExporterOptions opts;
60+
opentelemetry::exporter::otlp::OtlpGrpcLogRecordExporterOptions opts;
6061
if (collector_endpoint.has_value() && !collector_endpoint->empty()) {
6162
opts.endpoint = *collector_endpoint;
6263
}

src/telemetry/init_azure.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h"
1616
#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h"
1717
#include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h"
18+
#include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h"
1819
#include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h"
1920
#include "opentelemetry/sdk/trace/random_id_generator_factory.h"
2021

@@ -53,7 +54,7 @@ std::unique_ptr<opentelemetry::sdk::trace::IdGenerator> CreateIdGenerator() {
5354

5455
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter>
5556
CreateLogRecordExporter(absl::optional<std::string> collector_endpoint) {
56-
opentelemetry::exporter::otlp::OtlpGrpcExporterOptions opts;
57+
opentelemetry::exporter::otlp::OtlpGrpcLogRecordExporterOptions opts;
5758
if (collector_endpoint.has_value() && !collector_endpoint->empty()) {
5859
opts.endpoint = *collector_endpoint;
5960
}

src/telemetry/init_gcp.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h"
1616
#include "opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h"
1717
#include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h"
18+
#include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_options.h"
1819
#include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter_factory.h"
1920
#include "opentelemetry/sdk/trace/random_id_generator_factory.h"
2021

@@ -53,7 +54,7 @@ std::unique_ptr<opentelemetry::sdk::trace::IdGenerator> CreateIdGenerator() {
5354

5455
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter>
5556
CreateLogRecordExporter(absl::optional<std::string> collector_endpoint) {
56-
opentelemetry::exporter::otlp::OtlpGrpcExporterOptions opts;
57+
opentelemetry::exporter::otlp::OtlpGrpcLogRecordExporterOptions opts;
5758
if (collector_endpoint.has_value() && !collector_endpoint->empty()) {
5859
opts.endpoint = *collector_endpoint;
5960
}

src/telemetry/metrics_recorder.cc

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ constexpr double kDefaultHistogramBuckets[] = {
4545
};
4646

4747
class NoopMetricsRecorder : public MetricsRecorder {
48+
public:
49+
~NoopMetricsRecorder() override = default;
50+
4851
void IncrementEventStatus(std::string event, absl::Status status,
4952
uint64_t count = 1) override {}
5053

@@ -72,14 +75,16 @@ class MetricsRecorderImpl : public MetricsRecorder {
7275
event_status_count_ = meter->CreateUInt64Counter(
7376
"EventStatus", "Count of status code associated with events.");
7477

75-
// Catch all histogram, with preconfigured buckets which should work for
78+
// Catch-all histogram, with preconfigured buckets which should work for
7679
// most latencies distribution.
77-
RegisterHistogramView("Latency", "Latency View", {});
80+
RegisterHistogramView("Latency", "Latency View", "ns", {});
7881
latency_histogram_ = meter->CreateUInt64Histogram(
7982
"Latency", "Histogram of latencies associated with events.",
8083
"nanosecond");
8184
}
8285

86+
~MetricsRecorderImpl() override = default;
87+
8388
void IncrementEventStatus(std::string event, absl::Status status,
8489
uint64_t count = 1) override {
8590
absl::flat_hash_map<std::string, std::string> labels = common_labels_;
@@ -132,7 +137,7 @@ class MetricsRecorderImpl : public MetricsRecorder {
132137
key_iter != histograms_.end()) {
133138
return;
134139
}
135-
RegisterHistogramView(event, description, bucket_boundaries);
140+
RegisterHistogramView(event, description, unit, bucket_boundaries);
136141
auto meter = GetMeter();
137142
auto histogram = meter->CreateUInt64Histogram(event, description, unit);
138143
histograms_.insert_or_assign(std::move(event), std::move(histogram));
@@ -143,7 +148,9 @@ class MetricsRecorderImpl : public MetricsRecorder {
143148
}
144149

145150
private:
146-
void RegisterHistogramView(std::string name, std::string description,
151+
void RegisterHistogramView(const std::string& name,
152+
const std::string& description,
153+
const std::string& unit,
147154
std::vector<double> bucket_boundaries) {
148155
if (bucket_boundaries.empty()) {
149156
bucket_boundaries.insert(bucket_boundaries.begin(),
@@ -161,13 +168,13 @@ class MetricsRecorderImpl : public MetricsRecorder {
161168
}
162169
auto histogram_instrument_selector =
163170
std::make_unique<metric_sdk::InstrumentSelector>(
164-
metric_sdk::InstrumentType::kHistogram, name);
171+
metric_sdk::InstrumentType::kHistogram, name, unit);
165172
auto histogram_meter_selector = GetMeterSelector(std::string{kSchema});
166173
auto histogram_aggregation_config =
167174
std::make_shared<metric_sdk::HistogramAggregationConfig>();
168175
histogram_aggregation_config->boundaries_ = bucket_boundaries;
169176
auto histogram_view = std::make_unique<metric_sdk::View>(
170-
name, description, metric_sdk::AggregationType::kHistogram,
177+
name, description, unit, metric_sdk::AggregationType::kHistogram,
171178
std::move(histogram_aggregation_config));
172179
sdk_provider->AddView(std::move(histogram_instrument_selector),
173180
std::move(histogram_meter_selector),

src/telemetry/telemetry_test.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
#include "opentelemetry/logs/provider.h"
2121
#include "opentelemetry/metrics/provider.h"
22+
#include "opentelemetry/trace/noop.h"
2223

2324
#include "telemetry_provider.h"
2425

src/telemetry/trace_generator_aws.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ namespace {
3131
class XRayIdGenerator : public opentelemetry::sdk::trace::IdGenerator {
3232
public:
3333
explicit XRayIdGenerator(std::function<absl::Time()> now_func)
34-
: random_generator_(
34+
: opentelemetry::sdk::trace::IdGenerator(/*is_random=*/true),
35+
random_generator_(
3536
opentelemetry::sdk::trace::RandomIdGeneratorFactory::Create()),
3637
now_func_(std::move(now_func)) {}
3738

@@ -44,7 +45,7 @@ class XRayIdGenerator : public opentelemetry::sdk::trace::IdGenerator {
4445
// example:
4546
// https://github.com/alfianabdi/opentelemetry-cpp/blob/main/sdk/trace/aws_xray_id_generator.cc
4647
opentelemetry::trace::TraceId GenerateTraceId() noexcept override {
47-
const uint32_t seconds_nl = htonl(absl::ToUnixSeconds(now_func_()));
48+
const uint32_t seconds_nl = ::htonl(absl::ToUnixSeconds(now_func_()));
4849
const uint64_t lo =
4950
absl::Uniform(bitgen_, 0u, std::numeric_limits<decltype(lo)>::max());
5051
const uint32_t hi =

third_party/cpp_deps.bzl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,13 @@ def cpp_dependencies():
124124
maybe(
125125
http_archive,
126126
name = "io_opentelemetry_cpp",
127-
sha256 = "c61f4c6f820b04b920f35f84a3867cd44138bac4da21d21fbc00645c97e2051e",
128-
strip_prefix = "opentelemetry-cpp-1.9.1",
127+
patch_args = ["-p1"],
128+
# TODO(b/411264995): Remove this patch once https://github.com/open-telemetry/opentelemetry-cpp/issues/3354 is fixed.
129+
patches = [Label("//third_party:io_opentelemetry_cpp.patch")],
130+
sha256 = "2562959b23c8216406d13c6726aa14dc9cbbf15d9efdc8b7ce0aa5c1abb0be1c",
131+
strip_prefix = "opentelemetry-cpp-1.20.0",
129132
urls = [
130-
"https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.9.1.zip",
133+
"https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.20.0.zip",
131134
],
132135
)
133136
maybe(
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
diff --git a/api/include/opentelemetry/nostd/type_traits.h b/api/include/opentelemetry/nostd/type_traits.h
2+
index 3a64b5db1..3517bcc52 100644
3+
--- a/api/include/opentelemetry/nostd/type_traits.h
4+
+++ b/api/include/opentelemetry/nostd/type_traits.h
5+
@@ -3,6 +3,9 @@
6+
7+
#pragma once
8+
9+
+#include "opentelemetry/config.h"
10+
+#include "opentelemetry/version.h"
11+
+
12+
#if defined(OPENTELEMETRY_STL_VERSION)
13+
# if OPENTELEMETRY_STL_VERSION >= 2011
14+
# include "opentelemetry/std/type_traits.h"
15+
@@ -14,9 +17,7 @@
16+
# include <array>
17+
# include <type_traits>
18+
19+
-# include "opentelemetry/config.h"
20+
# include "opentelemetry/nostd/detail/void.h" // IWYU pragma: export
21+
-# include "opentelemetry/version.h"
22+
#endif
23+
24+
OPENTELEMETRY_BEGIN_NAMESPACE

0 commit comments

Comments
 (0)