diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h index 1f46d8e4176d86172174f80b7309709247b9c6f4..1b6769dee11b8899c84ce8e17cd92fc6c1612fe5 100644 --- a/include/grpc++/client_context.h +++ b/include/grpc++/client_context.h @@ -37,7 +37,7 @@ /// side. /// - Control call settings such as compression and authentication. /// - Initial and trailing metadata coming from the server. -/// - Get performace metrics (ie, census). +/// - Get performance metrics (ie, census). /// /// Context settings are only relevant to the call they are invoked with, that /// is to say, they aren't sticky. Some of these settings, such as the diff --git a/src/cpp/client/channel.cc b/src/cpp/client/channel.cc index 6b20abaf536c923bb17847636a2e1be0e531a152..c7974d655bfc574ee958ea4b089289dd4e3d91f7 100644 --- a/src/cpp/client/channel.cc +++ b/src/cpp/client/channel.cc @@ -77,6 +77,7 @@ Call Channel::CreateCall(const RpcMethod& method, ClientContext* context, cq->cq(), method.name(), host_str, context->raw_deadline(), nullptr); } + grpc_census_call_set_context(c_call, context->census_context()); context->set_call(c_call, shared_from_this()); return Call(c_call, this, cq); } diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc index 0306b5f321735ec8a4e4271b7cf2ff6fbd8075d5..8193e70660d1972ecc132753b778b05b565238a9 100644 --- a/src/cpp/server/server_context.cc +++ b/src/cpp/server/server_context.cc @@ -214,4 +214,8 @@ grpc::string ServerContext::peer() const { return peer; } +const struct census_context* ServerContext::census_context() const { + return grpc_census_call_get_context(call_); +} + } // namespace grpc