aboutsummaryrefslogtreecommitdiff
path: root/libcmix-common/performanceclient.cpp
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-12-01 21:42:51 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2016-12-01 21:43:48 +0100
commit16c28db384adbe61034eb8a2267cd6a886ffd72f (patch)
tree426be5a41f5186ba17e909dda90afca5b7921c30 /libcmix-common/performanceclient.cpp
parent463b8ec708db0d2d7405d434e28d0140c94b1d98 (diff)
downloadcmix-16c28db384adbe61034eb8a2267cd6a886ffd72f.tar.gz
cmix-16c28db384adbe61034eb8a2267cd6a886ffd72f.tar.bz2
cmix-16c28db384adbe61034eb8a2267cd6a886ffd72f.zip
Added the client side code for the statsd in the nodes.
Diffstat (limited to 'libcmix-common/performanceclient.cpp')
-rw-r--r--libcmix-common/performanceclient.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/libcmix-common/performanceclient.cpp b/libcmix-common/performanceclient.cpp
new file mode 100644
index 0000000..70953a8
--- /dev/null
+++ b/libcmix-common/performanceclient.cpp
@@ -0,0 +1,29 @@
+#include "performanceclient.hpp"
+
+#include <boost/date_time.hpp>
+
+#include <memory>
+
+PerformanceClient::PerformanceClient(std::string name, boost::asio::io_service& io_service, std::string host, std::string port)
+: node_name(name)
+, sender(std::unique_ptr<boost::asio::ip::tcp::socket>(new boost::asio::ip::tcp::socket(io_service)))
+, timer()
+{
+ timer.start();
+ sender.async_connect(host, port, []{});
+}
+
+void PerformanceClient::send(std::string column)
+{
+ cmix_proto::Performance perf;
+ perf.set_node(node_name);
+ perf.set_column(column);
+
+ auto tp = timer.elapsed();
+
+ perf.set_wall_time(std::to_string(tp.wall));
+ perf.set_user_time(std::to_string(tp.user));
+ perf.set_system_time(std::to_string(tp.system));
+
+ sender.async_send(perf);
+}