~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/logging_stats/logging_stats.cc

  • Committer: Andrew Hutchings
  • Date: 2011-02-01 10:23:22 UTC
  • mto: (2136.1.1 build)
  • mto: This revision was merged to the branch mainline in revision 2137.
  • Revision ID: andrew@linuxjedi.co.uk-20110201102322-oxztcyrjzg3c7yta
Fix counters cleanup

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
 * 
85
85
 */
86
86
 
87
 
#include <config.h>
 
87
#include "config.h"
88
88
#include "user_commands.h"
89
89
#include "status_vars.h"
90
90
#include "global_stats.h"
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>
100
97
 
101
98
namespace po= boost::program_options;
102
99
using namespace drizzled;
131
128
void LoggingStats::updateCurrentScoreboard(ScoreboardSlot *scoreboard_slot,
132
129
                                           Session *session)
133
130
{
134
 
  enum_sql_command sql_command= session->lex().sql_command;
 
131
  enum_sql_command sql_command= session->lex->sql_command;
135
132
 
136
133
  scoreboard_slot->getUserCommands()->logCommand(sql_command);
137
134
 
218
215
  }
219
216
 
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(); 
224
219
 
225
220
  cumulative_stats->logUserStats(scoreboard_slot, isInScoreboard);
226
221
  cumulative_stats->logGlobalStats(scoreboard_slot);
273
268
  }
274
269
}
275
270
 
 
271
static bool initTable()
 
272
{
 
273
  current_commands_tool= new(nothrow)CurrentCommandsTool(logging_stats);
 
274
 
 
275
  if (! current_commands_tool)
 
276
  {
 
277
    return true;
 
278
  }
 
279
 
 
280
  cumulative_commands_tool= new(nothrow)CumulativeCommandsTool(logging_stats);
 
281
 
 
282
  if (! cumulative_commands_tool)
 
283
  {
 
284
    return true;
 
285
  }
 
286
 
 
287
  global_statements_tool= new(nothrow)GlobalStatementsTool(logging_stats);
 
288
 
 
289
  if (! global_statements_tool)
 
290
  {
 
291
    return true;
 
292
  }
 
293
 
 
294
  session_statements_tool= new(nothrow)SessionStatementsTool(logging_stats);
 
295
 
 
296
  if (! session_statements_tool)
 
297
  {
 
298
    return true;
 
299
  }
 
300
 
 
301
  session_status_tool= new(nothrow)StatusTool(logging_stats, true);
 
302
 
 
303
  if (! session_status_tool)
 
304
  {
 
305
    return true;
 
306
  }
 
307
 
 
308
  global_status_tool= new(nothrow)StatusTool(logging_stats, false);
 
309
 
 
310
  if (! global_status_tool)
 
311
  {
 
312
    return true;
 
313
  }
 
314
 
 
315
  cumulative_user_stats_tool= new(nothrow)CumulativeUserStatsTool(logging_stats);
 
316
 
 
317
  if (! cumulative_user_stats_tool)
 
318
  {
 
319
    return true;
 
320
  }
 
321
 
 
322
  scoreboard_stats_tool= new(nothrow)ScoreboardStatsTool(logging_stats);
 
323
  
 
324
  if (! scoreboard_stats_tool)
 
325
  {
 
326
    return true;
 
327
  }
 
328
 
 
329
  return false;
 
330
}
 
331
 
276
332
static int init(drizzled::module::Context &context)
277
333
{
278
334
  const module::option_map &vm= context.getOptions();
279
 
  sysvar_logging_stats_enabled= not vm.count("disable");
 
335
 
 
336
  sysvar_logging_stats_enabled= (vm.count("disable")) ? false : true;
280
337
 
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);
 
339
 
 
340
  if (initTable())
 
341
  {
 
342
    return 1;
 
343
  }
290
344
 
291
345
  context.add(logging_stats);
292
346
  context.add(current_commands_tool);
299
353
  context.add(scoreboard_stats_tool);
300
354
 
301
355
  if (sysvar_logging_stats_enabled)
 
356
  {
302
357
    logging_stats->enable();
 
358
  }
303
359
 
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));