26#ifndef ROUTER_SRC_REST_MRS_SRC_MRS_SLOW_QUERY_MONITOR_H_
27#define ROUTER_SRC_REST_MRS_SRC_MRS_SLOW_QUERY_MONITOR_H_
57 int64_t timeout_ms = -1);
68 using TimeType = std::chrono::time_point<std::chrono::system_clock>;
91 unsigned long conn_id);
106 using Parent::WaitableMonitor;
Monitor can be waited for.
Definition: monitor.h:62
Definition: counted_mysql_session.h:39
Definition: mysql_cache_manager.h:82
Definition: configuration.h:49
Definition: slow_query_monitor.h:103
Definition: slow_query_monitor.h:47
void on_query_end(ActiveQueryListIt query)
Definition: slow_query_monitor.cc:165
void execute(const std::function< void()> &fn, MySQLSession *conn, int64_t timeout_ms=-1)
Definition: slow_query_monitor.cc:108
std::chrono::time_point< std::chrono::system_clock > TimeType
Definition: slow_query_monitor.h:68
void kill_session(const collector::CountedMySQLSession::ConnectionParameters ¶ms, unsigned long conn_id)
Definition: slow_query_monitor.cc:172
Waitable waitable_
Definition: slow_query_monitor.h:108
collector::MysqlCacheManager * cache_manager_
Definition: slow_query_monitor.h:100
void start()
Definition: slow_query_monitor.cc:227
WaitableVariable< State > state_
Definition: slow_query_monitor.h:101
ActiveQueryList::iterator ActiveQueryListIt
Definition: slow_query_monitor.h:81
void run()
Definition: slow_query_monitor.cc:254
void stop()
Definition: slow_query_monitor.cc:238
int64_t check_queries()
Definition: slow_query_monitor.cc:191
void reset()
Definition: slow_query_monitor.cc:249
~SlowQueryMonitor()
Definition: slow_query_monitor.cc:225
std::list< ActiveQuery > ActiveQueryList
Definition: slow_query_monitor.h:80
State
Definition: slow_query_monitor.h:96
@ k_running
Definition: slow_query_monitor.h:96
@ k_idle
Definition: slow_query_monitor.h:96
@ k_stopped
Definition: slow_query_monitor.h:96
@ k_initializing
Definition: slow_query_monitor.h:96
ActiveQueryList active_queries_
Definition: slow_query_monitor.h:111
bool wait_until_next_timeout(int64_t next_timeout)
Definition: slow_query_monitor.cc:277
uint64_t default_sql_timeout_ms_
Definition: slow_query_monitor.h:94
void configure(const std::string &options)
Definition: slow_query_monitor.cc:98
SlowQueryMonitor(const mrs::Configuration &configuration, collector::MysqlCacheManager *cache)
Definition: slow_query_monitor.cc:94
ActiveQueryListIt on_query_start(MySQLSession *conn, int64_t timeout_ms=-1)
Definition: slow_query_monitor.cc:129
std::thread monitor_thread_
Definition: slow_query_monitor.h:98
std::mutex active_queries_mutex_
Definition: slow_query_monitor.h:110
int64_t default_timeout() const
Definition: slow_query_monitor.h:65
const mrs::Configuration configuration_
Definition: slow_query_monitor.h:99
Definition: wait_variable.h:37
static char * query
Definition: myisam_ftdump.cc:47
constexpr const int64_t k_default_sql_query_timeout_ms
Definition: slow_query_monitor.h:45
collector::CountedMySQLSession CountedMySQLSession
Definition: mrs_component_embedded_mysql_cache.cc:43
Definition: authorize_manager.h:48
Definition: options.cc:57
required string configuration
Definition: replication_asynchronous_connection_failover.proto:49
Definition: counted_mysql_session.h:42
Definition: slow_query_monitor.h:72
uint64_t connection_id
Definition: slow_query_monitor.h:75
bool killed
Definition: slow_query_monitor.h:74
MySQLSession * conn
Definition: slow_query_monitor.h:73
TimeType max_time
Definition: slow_query_monitor.h:77