Class ClientMetrics
Defined in File msgpack_util.hpp
Nested Relationships
Nested Types
Class Documentation
-
class ClientMetrics
Public Functions
-
ClientMetrics() = default
-
explicit ClientMetrics(client_metric_io_type io_type, client_metric_flush_type flush_type = client_metric_flush_type::file, int flush_interval = 5)
-
~ClientMetrics()
-
void add_event(size_t size, std::chrono::time_point<std::chrono::system_clock> start)
-
void reset_metrics()
-
void flush_msgpack()
-
void flush_loop()
-
void enable()
-
void disable()
-
void zmq_connect(const std::string &ip_port)
-
bool zmq_is_connected()
-
const std::string &path() const
-
void path(const std::string &path, const std::string prefix = "")
-
int flush_count() const
Private Members
-
bool metrics_enabled_ = {false}
-
msgpack_data msgpack_data_ = {}
-
std::chrono::time_point<std::chrono::system_clock> init_t_
-
std::mutex data_mtx_ = {}
-
std::thread flush_thread_ = {}
-
std::condition_variable flush_thread_cv_ = {}
-
std::mutex flush_thread_cv_mutex_ = {}
-
std::atomic<bool> flush_thread_running_ = {false}
-
client_metric_flush_type flush_type_ = {client_metric_flush_type::file}
-
int flush_interval_ = {}
-
std::unique_ptr<zmq::context_t> zmq_flush_context_ = nullptr
-
std::unique_ptr<zmq::socket_t> zmq_flush_socket_ = nullptr
-
std::string flush_path_ = {}
-
int flush_count_ = {0}
-
ClientMetrics() = default