26#ifndef ROUTER_SRC_REST_MRS_SRC_MRS_SLOW_QUERY_MONITOR_H_
27#define ROUTER_SRC_REST_MRS_SRC_MRS_SLOW_QUERY_MONITOR_H_
49 using TimeType = std::chrono::time_point<std::chrono::system_clock>;
57 int64_t timeout_ms = -1);
87 unsigned long conn_id);
102 using Parent::WaitableMonitor;
Monitor can be waited for.
Definition: monitor.h:62
Definition: wait_variable.h:34
Definition: counted_mysql_session.h:38
Definition: mysql_cache_manager.h:87
Definition: configuration.h:47
Definition: slow_query_monitor.h:99
Definition: slow_query_monitor.h:47
void on_query_end(ActiveQueryListIt query)
Definition: slow_query_monitor.cc:154
void execute(const std::function< void()> &fn, MySQLSession *conn, int64_t timeout_ms=-1)
Definition: slow_query_monitor.cc:98
std::chrono::time_point< std::chrono::system_clock > TimeType
Definition: slow_query_monitor.h:49
void kill_session(const collector::CountedMySQLSession::ConnectionParameters ¶ms, unsigned long conn_id)
Definition: slow_query_monitor.cc:161
Waitable waitable_
Definition: slow_query_monitor.h:104
collector::MysqlCacheManager * cache_manager_
Definition: slow_query_monitor.h:96
void start()
Definition: slow_query_monitor.cc:216
WaitableVariable< State > state_
Definition: slow_query_monitor.h:97
ActiveQueryList::iterator ActiveQueryListIt
Definition: slow_query_monitor.h:77
void run()
Definition: slow_query_monitor.cc:239
void stop()
Definition: slow_query_monitor.cc:223
int64_t check_queries()
Definition: slow_query_monitor.cc:180
void reset()
Definition: slow_query_monitor.cc:234
~SlowQueryMonitor()
Definition: slow_query_monitor.cc:214
std::list< ActiveQuery > ActiveQueryList
Definition: slow_query_monitor.h:76
State
Definition: slow_query_monitor.h:92
@ k_running
Definition: slow_query_monitor.h:92
@ k_idle
Definition: slow_query_monitor.h:92
@ k_stopped
Definition: slow_query_monitor.h:92
@ k_initializing
Definition: slow_query_monitor.h:92
ActiveQueryList active_queries_
Definition: slow_query_monitor.h:107
bool wait_until_next_timeout(int64_t next_timeout)
Definition: slow_query_monitor.cc:262
uint64_t default_sql_timeout_ms_
Definition: slow_query_monitor.h:90
void configure(const std::string &options)
Definition: slow_query_monitor.cc:88
SlowQueryMonitor(const mrs::Configuration &configuration, collector::MysqlCacheManager *cache)
Definition: slow_query_monitor.cc:84
ActiveQueryListIt on_query_start(MySQLSession *conn, int64_t timeout_ms=-1)
Definition: slow_query_monitor.cc:118
std::thread monitor_thread_
Definition: slow_query_monitor.h:94
std::mutex active_queries_mutex_
Definition: slow_query_monitor.h:106
int64_t default_timeout() const
Definition: slow_query_monitor.h:65
const mrs::Configuration configuration_
Definition: slow_query_monitor.h:95
static char * query
Definition: myisam_ftdump.cc:47
constexpr const int64_t k_default_sql_query_timeout_ms
Definition: slow_query_monitor.h:45
Definition: authorize_manager.h:48
Definition: options.cc:57
required string configuration
Definition: replication_asynchronous_connection_failover.proto:49
Definition: counted_mysql_session.h:41
Definition: slow_query_monitor.h:68
uint64_t connection_id
Definition: slow_query_monitor.h:71
bool killed
Definition: slow_query_monitor.h:70
MySQLSession * conn
Definition: slow_query_monitor.h:69
TimeType max_time
Definition: slow_query_monitor.h:73