Skip to content

Commit f81c712

Browse files
authored
perf(otel): cache propagator in gRPC tracing stubs (#12642)
1 parent f364df7 commit f81c712

585 files changed

Lines changed: 4540 additions & 3662 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

generator/integration_tests/golden/v1/internal/golden_kitchen_sink_tracing_stub.cc

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
3333

3434
GoldenKitchenSinkTracingStub::GoldenKitchenSinkTracingStub(
3535
std::shared_ptr<GoldenKitchenSinkStub> child)
36-
: child_(std::move(child)) {}
36+
: child_(std::move(child)), propagator_(internal::MakePropagator()) {}
3737

3838
StatusOr<google::test::admin::database::v1::GenerateAccessTokenResponse> GoldenKitchenSinkTracingStub::GenerateAccessToken(
3939
grpc::ClientContext& context,
4040
google::test::admin::database::v1::GenerateAccessTokenRequest const& request) {
4141
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "GenerateAccessToken");
4242
auto scope = opentelemetry::trace::Scope(span);
43-
internal::InjectTraceContext(context, internal::CurrentOptions());
43+
internal::InjectTraceContext(context, *propagator_);
4444
return internal::EndSpan(context, *span,
4545
child_->GenerateAccessToken(context, request));
4646
}
@@ -50,7 +50,7 @@ StatusOr<google::test::admin::database::v1::GenerateIdTokenResponse> GoldenKitch
5050
google::test::admin::database::v1::GenerateIdTokenRequest const& request) {
5151
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "GenerateIdToken");
5252
auto scope = opentelemetry::trace::Scope(span);
53-
internal::InjectTraceContext(context, internal::CurrentOptions());
53+
internal::InjectTraceContext(context, *propagator_);
5454
return internal::EndSpan(context, *span,
5555
child_->GenerateIdToken(context, request));
5656
}
@@ -60,7 +60,7 @@ StatusOr<google::test::admin::database::v1::WriteLogEntriesResponse> GoldenKitch
6060
google::test::admin::database::v1::WriteLogEntriesRequest const& request) {
6161
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "WriteLogEntries");
6262
auto scope = opentelemetry::trace::Scope(span);
63-
internal::InjectTraceContext(context, internal::CurrentOptions());
63+
internal::InjectTraceContext(context, *propagator_);
6464
return internal::EndSpan(context, *span,
6565
child_->WriteLogEntries(context, request));
6666
}
@@ -70,7 +70,7 @@ StatusOr<google::test::admin::database::v1::ListLogsResponse> GoldenKitchenSinkT
7070
google::test::admin::database::v1::ListLogsRequest const& request) {
7171
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "ListLogs");
7272
auto scope = opentelemetry::trace::Scope(span);
73-
internal::InjectTraceContext(context, internal::CurrentOptions());
73+
internal::InjectTraceContext(context, *propagator_);
7474
return internal::EndSpan(context, *span,
7575
child_->ListLogs(context, request));
7676
}
@@ -80,7 +80,7 @@ StatusOr<google::test::admin::database::v1::ListServiceAccountKeysResponse> Gold
8080
google::test::admin::database::v1::ListServiceAccountKeysRequest const& request) {
8181
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "ListServiceAccountKeys");
8282
auto scope = opentelemetry::trace::Scope(span);
83-
internal::InjectTraceContext(context, internal::CurrentOptions());
83+
internal::InjectTraceContext(context, *propagator_);
8484
return internal::EndSpan(context, *span,
8585
child_->ListServiceAccountKeys(context, request));
8686
}
@@ -90,7 +90,7 @@ Status GoldenKitchenSinkTracingStub::DoNothing(
9090
google::protobuf::Empty const& request) {
9191
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "DoNothing");
9292
auto scope = opentelemetry::trace::Scope(span);
93-
internal::InjectTraceContext(context, internal::CurrentOptions());
93+
internal::InjectTraceContext(context, *propagator_);
9494
return internal::EndSpan(context, *span,
9595
child_->DoNothing(context, request));
9696
}
@@ -100,7 +100,7 @@ Status GoldenKitchenSinkTracingStub::Deprecated2(
100100
google::test::admin::database::v1::GenerateAccessTokenRequest const& request) {
101101
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "Deprecated2");
102102
auto scope = opentelemetry::trace::Scope(span);
103-
internal::InjectTraceContext(context, internal::CurrentOptions());
103+
internal::InjectTraceContext(context, *propagator_);
104104
return internal::EndSpan(context, *span,
105105
child_->Deprecated2(context, request));
106106
}
@@ -111,7 +111,7 @@ GoldenKitchenSinkTracingStub::StreamingRead(
111111
google::test::admin::database::v1::Request const& request) {
112112
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "StreamingRead");
113113
auto scope = opentelemetry::trace::Scope(span);
114-
internal::InjectTraceContext(*context, internal::CurrentOptions());
114+
internal::InjectTraceContext(*context, *propagator_);
115115
auto stream = child_->StreamingRead(context, request);
116116
return std::make_unique<internal::StreamingReadRpcTracing<google::test::admin::database::v1::Response>>(
117117
std::move(context), std::move(stream), std::move(span));
@@ -122,7 +122,7 @@ GoldenKitchenSinkTracingStub::StreamingWrite(
122122
std::shared_ptr<grpc::ClientContext> context) {
123123
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "StreamingWrite");
124124
auto scope = opentelemetry::trace::Scope(span);
125-
internal::InjectTraceContext(*context, internal::CurrentOptions());
125+
internal::InjectTraceContext(*context, *propagator_);
126126
auto stream = child_->StreamingWrite(context);
127127
return std::make_unique<
128128
internal::StreamingWriteRpcTracing<google::test::admin::database::v1::Request, google::test::admin::database::v1::Response>>(
@@ -136,7 +136,7 @@ GoldenKitchenSinkTracingStub::AsyncStreamingReadWrite(
136136
CompletionQueue const& cq, std::shared_ptr<grpc::ClientContext> context) {
137137
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "StreamingReadWrite");
138138
auto scope = opentelemetry::trace::Scope(span);
139-
internal::InjectTraceContext(*context, internal::CurrentOptions());
139+
internal::InjectTraceContext(*context, *propagator_);
140140
auto stream = child_->AsyncStreamingReadWrite(cq, context);
141141
return std::make_unique<internal::AsyncStreamingReadWriteRpcTracing<
142142
google::test::admin::database::v1::Request,
@@ -149,7 +149,7 @@ Status GoldenKitchenSinkTracingStub::ExplicitRouting1(
149149
google::test::admin::database::v1::ExplicitRoutingRequest const& request) {
150150
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "ExplicitRouting1");
151151
auto scope = opentelemetry::trace::Scope(span);
152-
internal::InjectTraceContext(context, internal::CurrentOptions());
152+
internal::InjectTraceContext(context, *propagator_);
153153
return internal::EndSpan(context, *span,
154154
child_->ExplicitRouting1(context, request));
155155
}
@@ -159,7 +159,7 @@ Status GoldenKitchenSinkTracingStub::ExplicitRouting2(
159159
google::test::admin::database::v1::ExplicitRoutingRequest const& request) {
160160
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "ExplicitRouting2");
161161
auto scope = opentelemetry::trace::Scope(span);
162-
internal::InjectTraceContext(context, internal::CurrentOptions());
162+
internal::InjectTraceContext(context, *propagator_);
163163
return internal::EndSpan(context, *span,
164164
child_->ExplicitRouting2(context, request));
165165
}
@@ -171,7 +171,7 @@ GoldenKitchenSinkTracingStub::AsyncStreamingRead(
171171
google::test::admin::database::v1::Request const& request) {
172172
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "StreamingRead");
173173
auto scope = opentelemetry::trace::Scope(span);
174-
internal::InjectTraceContext(*context, internal::CurrentOptions());
174+
internal::InjectTraceContext(*context, *propagator_);
175175
auto stream = child_->AsyncStreamingRead(cq, context, request);
176176
return std::make_unique<
177177
internal::AsyncStreamingReadRpcTracing<google::test::admin::database::v1::Response>>(
@@ -185,7 +185,7 @@ GoldenKitchenSinkTracingStub::AsyncStreamingWrite(
185185
std::shared_ptr<grpc::ClientContext> context) {
186186
auto span = internal::MakeSpanGrpc("google.test.admin.database.v1.GoldenKitchenSink", "StreamingWrite");
187187
auto scope = opentelemetry::trace::Scope(span);
188-
internal::InjectTraceContext(*context, internal::CurrentOptions());
188+
internal::InjectTraceContext(*context, *propagator_);
189189
auto stream = child_->AsyncStreamingWrite(cq, context);
190190
return std::make_unique<
191191
internal::AsyncStreamingWriteRpcTracing<google::test::admin::database::v1::Request, google::test::admin::database::v1::Response>>(

generator/integration_tests/golden/v1/internal/golden_kitchen_sink_tracing_stub.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#define GOOGLE_CLOUD_CPP_GENERATOR_INTEGRATION_TESTS_GOLDEN_V1_INTERNAL_GOLDEN_KITCHEN_SINK_TRACING_STUB_H
2121

2222
#include "generator/integration_tests/golden/v1/internal/golden_kitchen_sink_stub.h"
23+
#include "google/cloud/internal/trace_propagator.h"
2324
#include "google/cloud/options.h"
2425
#include "google/cloud/version.h"
2526

@@ -104,6 +105,7 @@ class GoldenKitchenSinkTracingStub : public GoldenKitchenSinkStub {
104105

105106
private:
106107
std::shared_ptr<GoldenKitchenSinkStub> child_;
108+
std::shared_ptr<opentelemetry::context::propagation::TextMapPropagator> propagator_;
107109
};
108110

109111
#endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY

0 commit comments

Comments
 (0)