Skip to content
This repository was archived by the owner on Jul 31, 2023. It is now read-only.

Commit ba3a683

Browse files
authored
Add configurable rpc_deadline to stats::StackdriverExporter. (#184)
Fixes #176.
1 parent 3846d21 commit ba3a683

2 files changed

Lines changed: 8 additions & 0 deletions

File tree

opencensus/exporters/stats/stackdriver/internal/stackdriver_exporter.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "absl/strings/str_cat.h"
2525
#include "absl/strings/string_view.h"
2626
#include "absl/synchronization/mutex.h"
27+
#include "absl/time/time.h"
2728
#include "google/monitoring/v3/metric_service.grpc.pb.h"
2829
#include "google/protobuf/empty.pb.h"
2930
#include "opencensus/common/internal/grpc/status.h"
@@ -107,6 +108,8 @@ void Handler::ExportViewData(
107108
for (int i = rpc_index * kTimeSeriesBatchSize; i < batch_end; ++i) {
108109
*request.add_time_series() = time_series[i];
109110
};
111+
responses[rpc_index].second.set_deadline(
112+
absl::ToChronoTime(absl::Now() + opts_.rpc_deadline));
110113
auto rpc(stub_->AsyncCreateTimeSeries(&responses[rpc_index].second, request,
111114
&cq));
112115
rpc->Finish(&response, &responses[rpc_index].first,
@@ -145,6 +148,7 @@ bool Handler::MaybeRegisterView(
145148
SetMetricDescriptor(project_id_, descriptor,
146149
request.mutable_metric_descriptor());
147150
::grpc::ClientContext context;
151+
context.set_deadline(absl::ToChronoTime(absl::Now() + opts_.rpc_deadline));
148152
google::api::MetricDescriptor response;
149153
::grpc::Status status =
150154
stub_->CreateMetricDescriptor(&context, request, &response);

opencensus/exporters/stats/stackdriver/stackdriver_exporter.h

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

2020
#include "absl/base/macros.h"
2121
#include "absl/strings/string_view.h"
22+
#include "absl/time/time.h"
2223

2324
namespace opencensus {
2425
namespace exporters {
@@ -32,6 +33,9 @@ struct StackdriverOptions {
3233
// The recommended format is "{LANGUAGE}-{PID}@{HOSTNAME}". If PID is not
3334
// available, a random number may be used.
3435
std::string opencensus_task;
36+
37+
// The RPC deadline to use when exporting to Stackdriver.
38+
absl::Duration rpc_deadline = absl::Seconds(5);
3539
};
3640

3741
// Exports stats for registered views (see opencensus/stats/stats_exporter.h) to

0 commit comments

Comments
 (0)