From 84edc034aa1f1e4ea9c2c3fbe7d21554e1b21ca8 Mon Sep 17 00:00:00 2001 From: Wanlin Du <67486458+wanlin31@users.noreply.github.com> Date: Wed, 16 Mar 2022 09:39:18 -0700 Subject: [PATCH] Update the scenario results to include start and end time for a test scenario. (#29034) This commit add start and end timestamp to the existing scenario results. --- src/proto/grpc/testing/BUILD | 9 +++++++++ src/proto/grpc/testing/control.proto | 5 +++++ test/cpp/qps/driver.cc | 14 ++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/src/proto/grpc/testing/BUILD b/src/proto/grpc/testing/BUILD index 6b9223c1c4a..c7b313e7b79 100644 --- a/src/proto/grpc/testing/BUILD +++ b/src/proto/grpc/testing/BUILD @@ -42,12 +42,21 @@ grpc_proto_library( name = "control_proto", srcs = ["control.proto"], has_services = False, + well_known_protos = True, deps = [ "payloads_proto", "stats_proto", ], ) +proto_library( + name = "control_proto_descriptors", + srcs = ["control.proto"], + deps = [ + "@com_google_protobuf//:timestamp_proto", + ], +) + grpc_proto_library( name = "echo_messages_proto", srcs = ["echo_messages.proto"], diff --git a/src/proto/grpc/testing/control.proto b/src/proto/grpc/testing/control.proto index 742b21926e7..c0ea1fd4564 100644 --- a/src/proto/grpc/testing/control.proto +++ b/src/proto/grpc/testing/control.proto @@ -16,6 +16,7 @@ syntax = "proto3"; import "src/proto/grpc/testing/payloads.proto"; import "src/proto/grpc/testing/stats.proto"; +import "google/protobuf/timestamp.proto"; package grpc.testing; @@ -265,6 +266,10 @@ message ScenarioResultSummary // Queries per CPU-sec over all servers or clients double server_queries_per_cpu_sec = 17; double client_queries_per_cpu_sec = 18; + + // Start and end time for the test scenario + google.protobuf.Timestamp start_time = 19; + google.protobuf.Timestamp end_time =20; } // Results of a single benchmark scenario. diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index bc4cc4bfadc..73b3303611a 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -18,6 +18,7 @@ #include "test/cpp/qps/driver.h" +#include #include #include #include @@ -25,6 +26,8 @@ #include #include +#include + #include #include #include @@ -573,6 +576,10 @@ std::unique_ptr RunScenario( // Start a run gpr_log(GPR_INFO, "Starting"); + + google::protobuf::Timestamp start_timestamp = + google::protobuf::util::TimeUtil::GetCurrentTime(); + for (size_t i = 0; i < num_servers; i++) { auto server = &servers[i]; if (!server->stream->Write(server_mark)) { @@ -624,6 +631,9 @@ std::unique_ptr RunScenario( bool client_finish_first = (client_config.rpc_type() != STREAMING_FROM_SERVER); + google::protobuf::Timestamp end_timestamp = + google::protobuf::util::TimeUtil::GetCurrentTime(); + FinishClients(clients, client_mark); if (!client_finish_first) { @@ -650,6 +660,10 @@ std::unique_ptr RunScenario( rrc->set_status_code(it->first); rrc->set_count(it->second); } + // Fill in start and end time for the test scenario + result->mutable_summary()->mutable_start_time()->CopyFrom(start_timestamp); + result->mutable_summary()->mutable_end_time()->CopyFrom(end_timestamp); + postprocess_scenario_result(result.get()); return result; }