diff options
author | Siddharth Rakesh <sidrakesh@google.com> | 2015-06-04 17:32:31 -0700 |
---|---|---|
committer | Siddharth Rakesh <sidrakesh@google.com> | 2015-06-04 17:32:31 -0700 |
commit | 922ea81877fc8b0676ae90d59a3caad9954e2feb (patch) | |
tree | 1a530a890d2589a23c8b3b346d0b2134f2f30840 /test/cpp/qps/report.cc | |
parent | b15d37a3c8382d156bae89466d2cef32d668253e (diff) |
QPS, latencies recorded with authentication
Diffstat (limited to 'test/cpp/qps/report.cc')
-rw-r--r-- | test/cpp/qps/report.cc | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/test/cpp/qps/report.cc b/test/cpp/qps/report.cc index e116175e3b..b4229889ad 100644 --- a/test/cpp/qps/report.cc +++ b/test/cpp/qps/report.cc @@ -35,6 +35,7 @@ #include <grpc/support/log.h> #include "test/cpp/qps/stats.h" +#include "user_data_client.h" namespace grpc { namespace testing { @@ -120,5 +121,107 @@ void GprLogReporter::ReportTimes(const ScenarioResult& result) const { [](ResourceUsage u) { return u.wall_time; })); } +UserDataClient userDataClient(grpc::CreateChannel("localhost:50052", grpc::InsecureCredentials(), + ChannelArguments())); + +//Leaderboard Reported implementation. +void UserDatabaseReporter::ReportQPS(const ScenarioResult& result) const { + double qps = result.latencies.Count() / + average(result.client_resources, + [](ResourceUsage u) { return u.wall_time; }); + + userDataClient.setAccessToken(access_token_); + userDataClient.setQPS(qps); + + int userDataState = userDataClient.sendDataIfReady(); + + switch(userDataState) { + case 1: + gpr_log(GPR_INFO, "Data sent to user database successfully"); + break; + case -1: + gpr_log(GPR_INFO, "Data could not be sent to user database"); + break; + } +} + +void UserDatabaseReporter::ReportQPSPerCore(const ScenarioResult& result, + const ServerConfig& server_config) const { + double qps = result.latencies.Count() / + average(result.client_resources, + [](ResourceUsage u) { return u.wall_time; }); + + double qpsPerCore = qps / server_config.threads(); + + userDataClient.setAccessToken(access_token_); + //TBD + userDataClient.setQPSPerCore(qpsPerCore); + + int userDataState = userDataClient.sendDataIfReady(); + + switch(userDataState) { + case 1: + gpr_log(GPR_INFO, "Data sent to user database successfully"); + break; + case -1: + gpr_log(GPR_INFO, "Data could not be sent to user database"); + break; + } +} + +void UserDatabaseReporter::ReportLatency(const ScenarioResult& result) const { + userDataClient.setAccessToken(access_token_); + userDataClient.setLatencies(result.latencies.Percentile(50) / 1000, + result.latencies.Percentile(90) / 1000, + result.latencies.Percentile(95) / 1000, + result.latencies.Percentile(99) / 1000, + result.latencies.Percentile(99.9) / 1000); + + int userDataState = userDataClient.sendDataIfReady(); + + switch(userDataState) { + case 1: + gpr_log(GPR_INFO, "Data sent to user database successfully"); + break; + case -1: + gpr_log(GPR_INFO, "Data could not be sent to user database"); + break; + } +} + +void UserDatabaseReporter::ReportTimes(const ScenarioResult& result) const { + double serverSystemTime = 100.0 * sum(result.server_resources, + [](ResourceUsage u) { return u.system_time; }) / + sum(result.server_resources, + [](ResourceUsage u) { return u.wall_time; }); + double serverUserTime = 100.0 * sum(result.server_resources, + [](ResourceUsage u) { return u.user_time; }) / + sum(result.server_resources, + [](ResourceUsage u) { return u.wall_time; }); + double clientSystemTime = 100.0 * sum(result.client_resources, + [](ResourceUsage u) { return u.system_time; }) / + sum(result.client_resources, + [](ResourceUsage u) { return u.wall_time; }); + double clientUserTime = 100.0 * sum(result.client_resources, + [](ResourceUsage u) { return u.user_time; }) / + sum(result.client_resources, + [](ResourceUsage u) { return u.wall_time; }); + + userDataClient.setAccessToken(access_token_); + userDataClient.setTimes(serverSystemTime, serverUserTime, + clientSystemTime, clientUserTime); + + int userDataState = userDataClient.sendDataIfReady(); + + switch(userDataState) { + case 1: + gpr_log(GPR_INFO, "Data sent to user database successfully"); + break; + case -1: + gpr_log(GPR_INFO, "Data could not be sent to user database"); + break; + } +} + } // namespace testing } // namespace grpc |