null+****@clear*****
null+****@clear*****
2011年 5月 31日 (火) 11:38:57 JST
Kouhei Sutou 2011-05-31 02:38:57 +0000 (Tue, 31 May 2011)
New Revision: 11cb2be4f387caff3dc7865c95d60d53416426a1
Log:
[query-log][analyzer] add --order option.
Modified files:
tools/groonga-analyze-query-log.rb
Modified: tools/groonga-analyze-query-log.rb (+21 -2)
===================================================================
--- tools/groonga-analyze-query-log.rb 2011-05-31 02:34:23 +0000 (5ab0142)
+++ tools/groonga-analyze-query-log.rb 2011-05-31 02:38:57 +0000 (ff44b92)
@@ -6,6 +6,7 @@ require 'optparse'
options = OpenStruct.new
options.n_entries = 10
+options.order = "-elapsed"
option_parser = OptionParser.new do |parser|
parser.banner += " LOG1 ..."
@@ -16,6 +17,15 @@ option_parser = OptionParser.new do |parser|
"(#{options.n_entries})") do |n|
options.n_entries = n
end
+
+ available_orders = ["elapsed", "-elapsed", "start-time", "-start-time"]
+ parser.on("--order=ORDER",
+ available_orders,
+ "Sort by ORDER",
+ "available values: [#{available_orders.join(', ')}]",
+ "(#{options.order})") do |order|
+ options.order = order
+ end
end
option_parser.parse!(ARGV)
@@ -122,7 +132,7 @@ class QueryLogReporter
attr_accessor :n_entries
def initialize(statistics)
@statistics = statistics
- @order = :elapsed
+ @order = "-elapsed"
@n_entries = 10
@sorted_statistics = nil
end
@@ -147,10 +157,18 @@ class QueryLogReporter
private
def sorter
case @order
- when :elapsed
+ when "elapsed"
lambda do |statistic|
-statistic.elapsed
end
+ when "-elapsed"
+ lambda do |statistic|
+ -statistic.elapsed
+ end
+ when "-start-time"
+ lambda do |statistic|
+ -statistic.start_time
+ end
else
lambda do |statistic|
statistic.start_time
@@ -176,5 +194,6 @@ parser = QueryLogParser.new
parser.parse(ARGF)
reporter = ConsoleQueryLogReporter.new(parser.statistics)
+reporter.order = options.order
reporter.n_entries = options.n_entries
reporter.report