@@ -40,14 +40,6 @@ constexpr char kGoogleStackdriverTraceAddress[] = "cloudtrace.googleapis.com";
4040constexpr char kAgentKey [] = " g.co/agent" ;
4141constexpr char kAgentValue [] = " opencensus-cpp" ;
4242
43- gpr_timespec ConvertToTimespec (absl::Time time) {
44- gpr_timespec g_time;
45- int64_t secs = absl::ToUnixSeconds (time);
46- g_time.tv_sec = secs;
47- g_time.tv_nsec = (time - absl::FromUnixSeconds (secs)) / absl::Nanoseconds (1 );
48- return g_time;
49- }
50-
5143bool Validate (const google::protobuf::Timestamp& t) {
5244 const auto sec = t.seconds ();
5345 const auto ns = t.nanos ();
@@ -245,29 +237,28 @@ void ConvertSpans(
245237
246238class Handler : public ::opencensus::trace::exporter::SpanExporter::Handler {
247239 public:
248- Handler (absl::string_view project_id ,
240+ Handler (const StackdriverOptions& opts ,
249241 const std::shared_ptr<grpc::Channel>& channel)
250- : project_id_(project_id ),
242+ : opts_(opts ),
251243 stub_ (::google::devtools::cloudtrace::v2::TraceService::NewStub(
252244 channel)) {}
253245
254246 void Export (const std::vector<::opencensus::trace::exporter::SpanData>& spans)
255247 override ;
256248
257249 private:
258- const std::string project_id_ ;
250+ const StackdriverOptions opts_ ;
259251 std::unique_ptr<google::devtools::cloudtrace::v2::TraceService::Stub> stub_;
260252};
261253
262254void Handler::Export (
263255 const std::vector<::opencensus::trace::exporter::SpanData>& spans) {
264256 ::google::devtools::cloudtrace::v2::BatchWriteSpansRequest request;
265- request.set_name (absl::StrCat (" projects/" , project_id_ ));
266- ConvertSpans (spans, project_id_ , &request);
257+ request.set_name (absl::StrCat (" projects/" , opts_. project_id ));
258+ ConvertSpans (spans, opts_. project_id , &request);
267259 ::google::protobuf::Empty response;
268260 grpc::ClientContext context;
269- context.set_deadline (
270- ConvertToTimespec (absl::Now () + absl::Milliseconds (3000 )));
261+ context.set_deadline (absl::ToChronoTime (absl::Now () + opts_.rpc_deadline ));
271262 grpc::Status status = stub_->BatchWriteSpans (&context, request, &response);
272263 if (!status.ok ()) {
273264 std::cerr << " BatchWriteSpans failed: "
@@ -282,7 +273,7 @@ void StackdriverExporter::Register(const StackdriverOptions& opts) {
282273 auto creds = grpc::GoogleDefaultCredentials ();
283274 auto channel = ::grpc::CreateChannel (kGoogleStackdriverTraceAddress , creds);
284275 ::opencensus::trace::exporter::SpanExporter::RegisterHandler (
285- absl::make_unique<Handler>(opts.project_id , channel));
276+ absl::make_unique<Handler>(opts, channel));
286277}
287278
288279// static, DEPRECATED
0 commit comments