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>
98
101
namespace po= boost::program_options;
99
102
using namespace drizzled;
128
131
void LoggingStats::updateCurrentScoreboard(ScoreboardSlot *scoreboard_slot,
129
132
Session *session)
131
enum_sql_command sql_command= session->lex->sql_command;
134
enum_sql_command sql_command= session->lex().sql_command;
133
136
scoreboard_slot->getUserCommands()->logCommand(sql_command);
217
220
scoreboard_slot->getStatusVars()->logStatusVar(session);
218
scoreboard_slot->getStatusVars()->getStatusVarCounters()->connection_time= session->getConnectSeconds();
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();
220
225
cumulative_stats->logUserStats(scoreboard_slot, isInScoreboard);
221
226
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)
332
276
static int init(drizzled::module::Context &context)
334
278
const module::option_map &vm= context.getOptions();
336
sysvar_logging_stats_enabled= (vm.count("disable")) ? false : true;
279
sysvar_logging_stats_enabled= not vm.count("disable");
338
281
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);
345
291
context.add(logging_stats);
346
292
context.add(current_commands_tool);
353
299
context.add(scoreboard_stats_tool);
355
301
if (sysvar_logging_stats_enabled)
357
302
logging_stats->enable();
360
304
context.registerVariable(new sys_var_constrained_value_readonly<uint32_t>("max_user_count", sysvar_logging_stats_max_user_count));
361
305
context.registerVariable(new sys_var_constrained_value_readonly<uint32_t>("bucket_count", sysvar_logging_stats_bucket_count));