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:38
Definition: mysql_cache_manager.h:87
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:162
void execute(const std::function< void()> &fn, MySQLSession *conn, int64_t timeout_ms=-1)
Definition: slow_query_monitor.cc:106
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:169
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:224
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:247
void stop()
Definition: slow_query_monitor.cc:231
int64_t check_queries()
Definition: slow_query_monitor.cc:188
void reset()
Definition: slow_query_monitor.cc:242
~SlowQueryMonitor()
Definition: slow_query_monitor.cc:222
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:270
uint64_t default_sql_timeout_ms_
Definition: slow_query_monitor.h:94
void configure(const std::string &options)
Definition: slow_query_monitor.cc:96
SlowQueryMonitor(const mrs::Configuration &configuration, collector::MysqlCacheManager *cache)
Definition: slow_query_monitor.cc:92
ActiveQueryListIt on_query_start(MySQLSession *conn, int64_t timeout_ms=-1)
Definition: slow_query_monitor.cc:126
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
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: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