fixup: polling interval

pull/35467/head
Eugene Ostroukhov 1 year ago
parent fc872953a3
commit 3d0983c32a
  1. 23
      test/cpp/interop/backend_metrics_lb_policy_test.cc
  2. 10
      test/cpp/interop/interop_client.cc

@ -30,6 +30,7 @@
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/status.h>
#include "src/core/lib/config/config_vars.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/proto/grpc/testing/messages.pb.h"
#include "src/proto/grpc/testing/test.grpc.pb.h"
@ -111,21 +112,37 @@ TEST(BackendMetricsLbPolicyTest, TestOobMetricsReceipt) {
ClientContext ctx;
SimpleRequest req;
SimpleResponse res;
ASSERT_EQ(stub.UnaryCall(&ctx, req, &res).error_code(), grpc::OK);
grpc_core::Mutex mu;
grpc_core::CondVar cond;
absl::optional<Status> status;
stub.async()->UnaryCall(&ctx, &req, &res, [&](auto s) {
grpc_core::MutexLock lock(&mu);
status = s;
cond.SignalAll();
});
// This report is sent on start, available immediately
auto report = tracker.WaitForOobLoadReport(
[](auto report) { return report.cpu_utilization() == 0.5; },
absl::Seconds(2 * grpc_test_slowdown_factor()), 3);
absl::Milliseconds(1500), 3);
ASSERT_TRUE(report.has_value());
EXPECT_EQ(report->cpu_utilization(), 0.5);
for (size_t i = 0; i < 3; i++) {
// Wait for slightly more than 1 min
report = tracker.WaitForOobLoadReport(
[](auto report) { return report.cpu_utilization() == 0.5; },
absl::Seconds(20 * grpc_test_slowdown_factor()), 3);
absl::Milliseconds(1500), 3);
ASSERT_TRUE(report.has_value());
EXPECT_EQ(report->cpu_utilization(), 0.5);
}
{
grpc_core::MutexLock lock(&mu);
if (!status.has_value()) {
cond.Wait(&mu);
}
ASSERT_TRUE(status.has_value());
EXPECT_EQ(status->error_code(), grpc::OK);
}
}
} // namespace

@ -40,6 +40,7 @@
#include <grpcpp/client_context.h>
#include <grpcpp/security/credentials.h>
#include "src/core/lib/config/config_vars.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/proto/grpc/testing/empty.pb.h"
@ -1022,8 +1023,13 @@ bool InteropClient::DoOrcaPerRpc() {
bool InteropClient::DoOrcaOob() {
static constexpr auto kTimeout = absl::Seconds(10);
gpr_log(GPR_DEBUG, "testing orca oob");
gpr_log(GPR_INFO, "testing orca oob");
load_report_tracker_.ResetCollectedLoadReports();
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
grpc_core::ConfigVars::Overrides overrides;
overrides.client_channel_backup_poll_interval_ms = 250;
grpc_core::ConfigVars::SetOverrides(overrides);
grpc_core::CoreConfiguration::RegisterBuilder(RegisterBackendMetricsLbPolicy);
ClientContext context;
std::unique_ptr<ClientReaderWriter<StreamingOutputCallRequest,
@ -1088,7 +1094,7 @@ bool InteropClient::DoOrcaOob() {
kTimeout, 10)
.has_value());
}
gpr_log(GPR_DEBUG, "orca oob successfully finished");
gpr_log(GPR_INFO, "orca oob successfully finished");
return true;
}

Loading…
Cancel
Save