aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/qps/report.cc
diff options
context:
space:
mode:
authorGravatar Siddharth Rakesh <sidrakesh@google.com>2015-06-04 17:32:31 -0700
committerGravatar Siddharth Rakesh <sidrakesh@google.com>2015-06-04 17:32:31 -0700
commit922ea81877fc8b0676ae90d59a3caad9954e2feb (patch)
tree1a530a890d2589a23c8b3b346d0b2134f2f30840 /test/cpp/qps/report.cc
parentb15d37a3c8382d156bae89466d2cef32d668253e (diff)
QPS, latencies recorded with authentication
Diffstat (limited to 'test/cpp/qps/report.cc')
-rw-r--r--test/cpp/qps/report.cc103
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