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:49
 
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