94
94
#include <boost/program_options.hpp>
95
95
#include <drizzled/module/option_map.h>
96
96
#include <drizzled/session.h>
97
#include <drizzled/session/times.h>
98
#include <drizzled/sql_lex.h>
99
#include <drizzled/statistics_variables.h>
101
98
namespace po= boost::program_options;
102
99
using namespace drizzled;
131
128
void LoggingStats::updateCurrentScoreboard(ScoreboardSlot *scoreboard_slot,
132
129
Session *session)
134
enum_sql_command sql_command= session->lex().sql_command;
131
enum_sql_command sql_command= session->lex->sql_command;
136
133
scoreboard_slot->getUserCommands()->logCommand(sql_command);
220
217
scoreboard_slot->getStatusVars()->logStatusVar(session);
221
boost::posix_time::ptime end(boost::posix_time::microsec_clock::universal_time());
222
uint64_t end_time= (end - session->times.epoch()).total_seconds();
223
scoreboard_slot->getStatusVars()->getStatusVarCounters()->connection_time= end_time - session->times.getConnectSeconds();
218
scoreboard_slot->getStatusVars()->getStatusVarCounters()->connection_time= session->getConnectSeconds();
225
220
cumulative_stats->logUserStats(scoreboard_slot, isInScoreboard);
226
221
cumulative_stats->logGlobalStats(scoreboard_slot);
271
static bool initTable()
273
current_commands_tool= new(nothrow)CurrentCommandsTool(logging_stats);
275
if (! current_commands_tool)
280
cumulative_commands_tool= new(nothrow)CumulativeCommandsTool(logging_stats);
282
if (! cumulative_commands_tool)
287
global_statements_tool= new(nothrow)GlobalStatementsTool(logging_stats);
289
if (! global_statements_tool)
294
session_statements_tool= new(nothrow)SessionStatementsTool(logging_stats);
296
if (! session_statements_tool)
301
session_status_tool= new(nothrow)StatusTool(logging_stats, true);
303
if (! session_status_tool)
308
global_status_tool= new(nothrow)StatusTool(logging_stats, false);
310
if (! global_status_tool)
315
cumulative_user_stats_tool= new(nothrow)CumulativeUserStatsTool(logging_stats);
317
if (! cumulative_user_stats_tool)
322
scoreboard_stats_tool= new(nothrow)ScoreboardStatsTool(logging_stats);
324
if (! scoreboard_stats_tool)
276
332
static int init(drizzled::module::Context &context)
278
334
const module::option_map &vm= context.getOptions();
279
sysvar_logging_stats_enabled= not vm.count("disable");
336
sysvar_logging_stats_enabled= (vm.count("disable")) ? false : true;
281
338
logging_stats= new LoggingStats("logging_stats");
282
current_commands_tool= new CurrentCommandsTool(logging_stats);
283
cumulative_commands_tool= new CumulativeCommandsTool(logging_stats);
284
global_statements_tool= new GlobalStatementsTool(logging_stats);
285
session_statements_tool= new SessionStatementsTool(logging_stats);
286
session_status_tool= new StatusTool(logging_stats, true);
287
global_status_tool= new StatusTool(logging_stats, false);
288
cumulative_user_stats_tool= new CumulativeUserStatsTool(logging_stats);
289
scoreboard_stats_tool= new ScoreboardStatsTool(logging_stats);
291
345
context.add(logging_stats);
292
346
context.add(current_commands_tool);
299
353
context.add(scoreboard_stats_tool);
301
355
if (sysvar_logging_stats_enabled)
302
357
logging_stats->enable();
304
360
context.registerVariable(new sys_var_constrained_value_readonly<uint32_t>("max_user_count", sysvar_logging_stats_max_user_count));
305
361
context.registerVariable(new sys_var_constrained_value_readonly<uint32_t>("bucket_count", sysvar_logging_stats_bucket_count));