@@ -43,7 +43,7 @@ constexpr int kTimeSeriesBatchSize = 200;
4343
4444class Handler : public ::opencensus::stats::StatsExporter::Handler {
4545 public:
46- Handler (absl::string_view project_id, absl::string_view opencensus_task );
46+ explicit Handler (const StackdriverOptions& opts );
4747
4848 void ExportViewData (
4949 const std::vector<std::pair<opencensus::stats::ViewDescriptor,
@@ -59,18 +59,17 @@ class Handler : public ::opencensus::stats::StatsExporter::Handler {
5959 bool MaybeRegisterView (const opencensus::stats::ViewDescriptor& descriptor)
6060 EXCLUSIVE_LOCKS_REQUIRED(mu_);
6161
62+ const StackdriverOptions opts_;
6263 const std::string project_id_;
63- const std::string opencensus_task_;
6464 const std::unique_ptr<google::monitoring::v3::MetricService::Stub> stub_;
6565 mutable absl::Mutex mu_;
6666 std::unordered_map<std::string, opencensus::stats::ViewDescriptor>
6767 registered_descriptors_ GUARDED_BY (mu_);
6868};
6969
70- Handler::Handler (absl::string_view project_id,
71- absl::string_view opencensus_task)
72- : project_id_(absl::StrCat(kProjectIdPrefix , project_id)),
73- opencensus_task_ (opencensus_task),
70+ Handler::Handler (const StackdriverOptions& opts)
71+ : opts_(opts),
72+ project_id_ (absl::StrCat(kProjectIdPrefix , opts.project_id)),
7473 stub_(google::monitoring::v3::MetricService::NewStub(
7574 ::grpc::CreateChannel (kGoogleStackdriverStatsAddress ,
7675 ::grpc::GoogleDefaultCredentials ()))) {}
@@ -86,7 +85,7 @@ void Handler::ExportViewData(
8685 continue ;
8786 }
8887 const auto view_time_series =
89- MakeTimeSeries (datum.first , datum.second , opencensus_task_ );
88+ MakeTimeSeries (datum.first , datum.second , opts_. opencensus_task );
9089 time_series.insert (time_series.end (), view_time_series.begin (),
9190 view_time_series.end ());
9291 }
@@ -161,10 +160,18 @@ bool Handler::MaybeRegisterView(
161160} // namespace
162161
163162// static
163+ void StackdriverExporter::Register (const StackdriverOptions& opts) {
164+ opencensus::stats::StatsExporter::RegisterPushHandler (
165+ absl::WrapUnique (new Handler (opts)));
166+ }
167+
168+ // static, DEPRECATED
164169void StackdriverExporter::Register (absl::string_view project_id,
165170 absl::string_view opencensus_task) {
166- opencensus::stats::StatsExporter::RegisterPushHandler (
167- absl::WrapUnique (new Handler (project_id, opencensus_task)));
171+ StackdriverOptions opts;
172+ opts.project_id = std::string (project_id);
173+ opts.opencensus_task = std::string (opencensus_task);
174+ Register (opts);
168175}
169176
170177} // namespace stats
0 commit comments