groonga-query-log 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/text/news.md +14 -0
- data/lib/groonga-query-log/command/run-regression-test.rb +136 -2
- data/lib/groonga-query-log/parser.rb +16 -9
- data/lib/groonga-query-log/statistic.rb +1 -0
- data/lib/groonga-query-log/version.rb +2 -2
- data/test/command/test-run-regression-test.rb +128 -0
- data/test/fixtures/run-regression-test/db.new/db +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000000 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000100 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000101 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000102 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000103 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000103.c +0 -0
- data/test/fixtures/run-regression-test/db.new/db.001 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.conf +0 -0
- data/test/fixtures/run-regression-test/db.new/groonga.log +165 -0
- data/test/fixtures/run-regression-test/db.old/db +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000000 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000100 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000101 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000102 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000103 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000103.c +0 -0
- data/test/fixtures/run-regression-test/db.old/db.001 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.conf +0 -0
- data/test/fixtures/run-regression-test/db.old/groonga.log +79 -0
- data/test/fixtures/run-regression-test/results/query.log +0 -0
- data/test/test-parser.rb +69 -3
- metadata +78 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 285c9ab6fc720b1f13bab6a59875e7a29829cfc12a2ba1220d78621391b88b44
|
4
|
+
data.tar.gz: 26547ca64e0ff435a54b94e2b5a65d38e7d31f1dfbb7f4a040bf7cf9ffef8fab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9814687fd086b19c731d938f274f690b94322716a26e1a4672f2e3d63ff2c579a1f9a667163da559df0c45afd9cdaa9af20760b916042f06787c39a7dad1474e
|
7
|
+
data.tar.gz: e705b82a38091ac40eae7e36228b5423b162e65088316065019a72b9153543dab4f2570c9a81ee6ec3535cf9281ba8515c138ab3ee9dc1a65e983d5c623e7509
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 1.4.1: 2019-05-09
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* `groonga-query-log-run-regression-test`:
|
8
|
+
|
9
|
+
* Added support for notifying by e-mail.
|
10
|
+
|
11
|
+
* Added support for `flush`.
|
12
|
+
|
13
|
+
* Added `:raw_message` to operation.
|
14
|
+
|
15
|
+
* Added support for `drilldowns[LABEL].adjust`.
|
16
|
+
|
3
17
|
## 1.4.0: 2019-03-13
|
4
18
|
|
5
19
|
### Improvements
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2014-
|
1
|
+
# Copyright (C) 2014-2019 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -20,8 +20,12 @@ require "socket"
|
|
20
20
|
require "fileutils"
|
21
21
|
require "pathname"
|
22
22
|
require "net/http"
|
23
|
+
require "net/smtp"
|
24
|
+
require "time"
|
25
|
+
require "base64"
|
23
26
|
|
24
27
|
require "groonga-query-log"
|
28
|
+
require "groonga-query-log/command/format-regression-test-logs"
|
25
29
|
require "groonga-query-log/command/verify-server"
|
26
30
|
|
27
31
|
module GroongaQueryLog
|
@@ -57,6 +61,18 @@ module GroongaQueryLog
|
|
57
61
|
@target_command_names = ServerVerifier::Options.new.target_command_names
|
58
62
|
|
59
63
|
@read_timeout = Groonga::Client::Default::READ_TIMEOUT
|
64
|
+
|
65
|
+
@notifier_options = {
|
66
|
+
mail_subject_on_success: "Success",
|
67
|
+
mail_subject_on_failure: "Failure",
|
68
|
+
mail_from: "groonga-query-log@#{Socket.gethostname}",
|
69
|
+
mail_to: nil,
|
70
|
+
smtp_server: "localhost",
|
71
|
+
smtp_auth_user: nil,
|
72
|
+
smtp_auth_password: nil,
|
73
|
+
smtp_starttls: false,
|
74
|
+
smtp_port: 25,
|
75
|
+
}
|
60
76
|
end
|
61
77
|
|
62
78
|
def run(command_line)
|
@@ -68,10 +84,18 @@ module GroongaQueryLog
|
|
68
84
|
return false
|
69
85
|
end
|
70
86
|
|
87
|
+
@start_time = Time.now
|
71
88
|
tester = Tester.new(old_groonga_server,
|
72
89
|
new_groonga_server,
|
73
90
|
tester_options)
|
74
|
-
tester.run
|
91
|
+
success = tester.run
|
92
|
+
|
93
|
+
notifier = MailNotifier.new(success,
|
94
|
+
Time.now - @start_time,
|
95
|
+
@notifier_options)
|
96
|
+
notifier.notify
|
97
|
+
|
98
|
+
success
|
75
99
|
end
|
76
100
|
|
77
101
|
private
|
@@ -226,6 +250,48 @@ module GroongaQueryLog
|
|
226
250
|
@read_timeout = timeout
|
227
251
|
end
|
228
252
|
|
253
|
+
parser.separator("")
|
254
|
+
parser.separator("Notifications:")
|
255
|
+
parser.on("--smtp-server=SERVER",
|
256
|
+
"Use SERVER as SMTP server",
|
257
|
+
"(#{@notifier_options[:smtp_server]})") do |server|
|
258
|
+
@notifier_options[:smtp_server] = server
|
259
|
+
end
|
260
|
+
parser.on("--smtp-auth-user=USER",
|
261
|
+
"Use USER for SMTP AUTH",
|
262
|
+
"(#{@notifier_options[:smtp_auth_user]})") do |user|
|
263
|
+
@notifier_options[:smtp_auth_user] = user
|
264
|
+
end
|
265
|
+
parser.on("--smtp-auth-password=PASSWORD",
|
266
|
+
"Use PASSWORD for SMTP AUTH",
|
267
|
+
"(#{@notifier_options[:smtp_auth_password]})") do |password|
|
268
|
+
@notifier_options[:smtp_auth_password] = password
|
269
|
+
end
|
270
|
+
parser.on("--[no-]smtp-starttls",
|
271
|
+
"Whether use StartTLS in SMTP or not",
|
272
|
+
"(#{@notifier_options[:smtp_starttls]})") do |boolean|
|
273
|
+
@notifier_options[:smtp_starttls] = boolean
|
274
|
+
end
|
275
|
+
parser.on("--smtp-port=PORT", Integer,
|
276
|
+
"Use PORT as SMTP server port",
|
277
|
+
"(#{@notifier_options[:smtp_port]})") do |port|
|
278
|
+
@notifier_options[:smtp_port] = port
|
279
|
+
end
|
280
|
+
parser.on("--mail-to=TO",
|
281
|
+
"Send a notification e-mail to TO",
|
282
|
+
"(#{@notifier_options[:mail_to]})") do |to|
|
283
|
+
@notifier_options[:mail_to] = to
|
284
|
+
end
|
285
|
+
parser.on("--mail-subject-on-success=SUBJECT",
|
286
|
+
"Use SUBJECT as subject for notification e-mail on success",
|
287
|
+
"(#{@notifier_options[:mail_subject_on_success]})") do |subject|
|
288
|
+
@notifier_options[:mail_subject_on_success] = subject
|
289
|
+
end
|
290
|
+
parser.on("--mail-subject-on-failure=SUBJECT",
|
291
|
+
"Use SUBJECT as subject for notification e-mail on failure",
|
292
|
+
"(#{@notifier_options[:mail_subject_on_failure]})") do |subject|
|
293
|
+
@notifier_options[:mail_subject_on_failure] = subject
|
294
|
+
end
|
229
295
|
parser
|
230
296
|
end
|
231
297
|
|
@@ -585,6 +651,74 @@ module GroongaQueryLog
|
|
585
651
|
@old.use_persistent_cache? or @new.use_persistent_cache?
|
586
652
|
end
|
587
653
|
end
|
654
|
+
|
655
|
+
class MailNotifier
|
656
|
+
def initialize(success, elapsed_time, options)
|
657
|
+
@success = success
|
658
|
+
@elapsed_time = elapsed_time
|
659
|
+
@options = options
|
660
|
+
@path = @options[:path] || "results"
|
661
|
+
end
|
662
|
+
|
663
|
+
def notify
|
664
|
+
return unless @options[:mail_to]
|
665
|
+
|
666
|
+
output = StringIO.new
|
667
|
+
formetter = FormatRegressionTestLogs.new(output: output)
|
668
|
+
formetter.run([@path])
|
669
|
+
formatted_log = output.string
|
670
|
+
|
671
|
+
if @success
|
672
|
+
subject = @options[:mail_subject_on_success]
|
673
|
+
else
|
674
|
+
subject = @options[:mail_subject_on_failure]
|
675
|
+
end
|
676
|
+
content = format_elapsed_time
|
677
|
+
content << "Report:\n"
|
678
|
+
content << formatted_log
|
679
|
+
send_mail(subject, content)
|
680
|
+
end
|
681
|
+
|
682
|
+
private
|
683
|
+
def format_elapsed_time
|
684
|
+
elapsed_seconds = @elapsed_time % 60
|
685
|
+
elapsed_minutes = @elapsed_time / 60 % 60
|
686
|
+
elapsed_hours = @elapsed_time / 60 / 60 % 24
|
687
|
+
elapsed_days = @elapsed_time / 60 / 60 / 24
|
688
|
+
"Elapsed: %ddays %02d:%02d:%02d\n" % [
|
689
|
+
elapsed_days,
|
690
|
+
elapsed_hours,
|
691
|
+
elapsed_minutes,
|
692
|
+
elapsed_seconds
|
693
|
+
]
|
694
|
+
end
|
695
|
+
|
696
|
+
def send_mail(subject, content)
|
697
|
+
header = <<-HEADER
|
698
|
+
MIME-Version: 1.0
|
699
|
+
X-Mailer: groonga-query-log test reporter #{VERSION};
|
700
|
+
https://github.com/groonga/groonga-query-log
|
701
|
+
Content-Type: text/plain; charset=utf-8
|
702
|
+
Content-Transfer-Encoding: 8bit
|
703
|
+
From: #{@options[:mail_from]}
|
704
|
+
To: #{@options[:mail_to]}
|
705
|
+
Subject: #{subject}
|
706
|
+
Date: #{Time.now.rfc2822}
|
707
|
+
HEADER
|
708
|
+
|
709
|
+
mail = <<-MAIL.gsub(/\r?\n/, "\r\n")
|
710
|
+
#{header}
|
711
|
+
#{content}
|
712
|
+
MAIL
|
713
|
+
smtp = Net::SMTP.new(@options[:smtp_server], @options[:smtp_port])
|
714
|
+
smtp.enable_starttls if @options[:smtp_starttls]
|
715
|
+
smtp.start(@options[:smtp_server],
|
716
|
+
@options[:smtp_auth_user],
|
717
|
+
@options[:smtp_auth_password]) do
|
718
|
+
smtp.send_message(mail, @options[:mail_from], @options[:mail_to])
|
719
|
+
end
|
720
|
+
end
|
721
|
+
end
|
588
722
|
end
|
589
723
|
end
|
590
724
|
end
|
@@ -116,18 +116,25 @@ module GroongaQueryLog
|
|
116
116
|
statistic.start(time_stamp, rest)
|
117
117
|
@parsing_statistics[context_id] = statistic
|
118
118
|
when ":"
|
119
|
-
return unless /\A
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
119
|
+
return unless /\A
|
120
|
+
(?<elapsed>\d+)
|
121
|
+
\
|
122
|
+
(?<raw_message>
|
123
|
+
(?<name>[a-zA-Z._-]+)
|
124
|
+
(?<sub_name_before>\[.+?\](?:[a-zA-Z._-]*))?
|
125
|
+
(?:\((?<n_records>\d+)\))?
|
126
|
+
(?<sub_name_after>\[.+?\])?
|
127
|
+
(?::\ (?<extra>.*))?
|
128
|
+
)
|
129
|
+
/x =~ rest
|
125
130
|
statistic = @parsing_statistics[context_id]
|
126
131
|
return if statistic.nil?
|
127
|
-
|
132
|
+
full_name = "#{name}#{sub_name_before}#{sub_name_after}"
|
133
|
+
statistic.add_operation(:name => full_name,
|
128
134
|
:elapsed => elapsed.to_i,
|
129
|
-
:n_records => n_records,
|
130
|
-
:extra => extra
|
135
|
+
:n_records => n_records.to_i,
|
136
|
+
:extra => extra,
|
137
|
+
:raw_message => raw_message)
|
131
138
|
when "<"
|
132
139
|
return unless /\A(\d+) rc=(-?\d+)/ =~ rest
|
133
140
|
elapsed = $1
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2012-
|
1
|
+
# Copyright (C) 2012-2019 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -15,5 +15,5 @@
|
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
16
|
|
17
17
|
module GroongaQueryLog
|
18
|
-
VERSION = "1.4.
|
18
|
+
VERSION = "1.4.1"
|
19
19
|
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
# Copyright (C) 2019 Kentaro Hayashi <hayashi@clear-code.com>
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
require "groonga-query-log/command/run-regression-test"
|
18
|
+
|
19
|
+
class RunRegressionTestCommandTest < Test::Unit::TestCase
|
20
|
+
include Helper::Path
|
21
|
+
|
22
|
+
def fixture_path(*components)
|
23
|
+
super("regression-test-logs", *components)
|
24
|
+
end
|
25
|
+
|
26
|
+
class SMTPServer
|
27
|
+
def initialize
|
28
|
+
@socket = TCPServer.open(host, port)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
sub_test_case("MailNotifier") do
|
33
|
+
MailNotifier = GroongaQueryLog::Command::RunRegressionTest::MailNotifier
|
34
|
+
|
35
|
+
def setup
|
36
|
+
@smtp_host = "127.0.0.1"
|
37
|
+
@smtp_port = 20025
|
38
|
+
@requests = []
|
39
|
+
@now = "Tue, 26 Mar 2019 16:39:46 +0900"
|
40
|
+
@server = TCPServer.open(@smtp_host, @smtp_port)
|
41
|
+
@thread = Thread.new do
|
42
|
+
client = @server.accept
|
43
|
+
client.print("220 localhost SMTP server\r\n")
|
44
|
+
client.each_line do |line|
|
45
|
+
@requests << line
|
46
|
+
case line.chomp
|
47
|
+
when /\AEHLO /
|
48
|
+
client.print("250 AUTH\r\n")
|
49
|
+
when /\AMAIL FROM:/
|
50
|
+
client.print("250 2.1.0 Ok\r\n")
|
51
|
+
when /\ARCPT TO:/
|
52
|
+
client.print("250 2.1.0 Ok\r\n")
|
53
|
+
when "DATA"
|
54
|
+
client.print("354 End data with <CR><LF>.<CR><LF>\r\n")
|
55
|
+
when "."
|
56
|
+
client.print("250 2.0.0 Ok\r\n")
|
57
|
+
when "QUIT"
|
58
|
+
client.print("221 2.0.0 Bye\r\n")
|
59
|
+
client.close
|
60
|
+
break
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def teardown
|
67
|
+
@server.close
|
68
|
+
@thread.kill
|
69
|
+
end
|
70
|
+
|
71
|
+
def normalized_request
|
72
|
+
@requests
|
73
|
+
.join("")
|
74
|
+
.gsub(/^Date: .*\r\n/,
|
75
|
+
"Date: #{@now}\r\n")
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_success
|
79
|
+
options = {
|
80
|
+
:smtp_server => @smtp_host,
|
81
|
+
:smtp_port => @smtp_port,
|
82
|
+
:mail_from => "groonga-query-log@example.com",
|
83
|
+
:mail_to => "noreply@example.com",
|
84
|
+
:mail_subject_on_success => "Success",
|
85
|
+
:mail_subject_on_failure => "Failure",
|
86
|
+
:path => fixture_path("url-format.log"),
|
87
|
+
}
|
88
|
+
notifier = MailNotifier.new(true, 3000, options)
|
89
|
+
notifier.notify
|
90
|
+
assert_equal(<<-REQUEST.gsub(/\n/, "\r\n").b, normalized_request)
|
91
|
+
EHLO 127.0.0.1
|
92
|
+
MAIL FROM:<#{options[:mail_from]}>
|
93
|
+
RCPT TO:<#{options[:mail_to]}>
|
94
|
+
DATA
|
95
|
+
MIME-Version: 1.0
|
96
|
+
X-Mailer: groonga-query-log test reporter #{GroongaQueryLog::VERSION};
|
97
|
+
https://github.com/groonga/groonga-query-log
|
98
|
+
Content-Type: text/plain; charset=utf-8
|
99
|
+
Content-Transfer-Encoding: 8bit
|
100
|
+
From: #{options[:mail_from]}
|
101
|
+
To: #{options[:mail_to]}
|
102
|
+
Subject: Success
|
103
|
+
Date: #{@now}
|
104
|
+
|
105
|
+
Elapsed: 0days 00:50:00
|
106
|
+
Report:
|
107
|
+
Command:
|
108
|
+
/d/select?table=Logs&match_columns=message&query=%E7%84%BC%E8%82%89
|
109
|
+
Name: select
|
110
|
+
Arguments:
|
111
|
+
match_columns: message
|
112
|
+
query: 焼肉
|
113
|
+
table: Logs
|
114
|
+
--- old
|
115
|
+
+++ new
|
116
|
+
@@ -1,4 +1,4 @@
|
117
|
+
[[[2],
|
118
|
+
[["_id", "UInt32"], ["message", "Text"]],
|
119
|
+
[1, "log message1: 焼肉"],
|
120
|
+
- [2, "log message2: 焼肉"]]]
|
121
|
+
+ [3, "log message3: 焼肉"]]]
|
122
|
+
|
123
|
+
.
|
124
|
+
QUIT
|
125
|
+
REQUEST
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,165 @@
|
|
1
|
+
2017-04-24 11:06:45.783903|n| grn_init: <7.0.1-105-gf940037>
|
2
|
+
2017-04-24 11:06:45.783995|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
3
|
+
2017-04-24 11:06:45.785696|n| DDL:256:table_create Entries
|
4
|
+
2017-04-24 11:06:45.832240|n| spec:256:update:Entries:48(table:hash_key):0
|
5
|
+
2017-04-24 11:06:45.832566|n| DDL:257:column_create Entries description
|
6
|
+
2017-04-24 11:06:45.882379|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
|
7
|
+
2017-04-24 11:06:45.902188|n| grn_fin (0)
|
8
|
+
2017-04-24 11:06:45.911851|n| grn_init: <7.0.1-105-gf940037>
|
9
|
+
2017-04-24 11:06:45.911981|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
10
|
+
2017-04-24 11:06:45.927281|n| grn_fin (0)
|
11
|
+
2017-04-24 11:06:45.938921|n| grn_init: <7.0.1-105-gf940037>
|
12
|
+
2017-04-24 11:06:45.939085|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
13
|
+
2017-04-24 11:06:45.943080|n| DDL:258:table_create Bigram
|
14
|
+
2017-04-24 11:06:45.990956|n| spec:258:update:Bigram:49(table:pat_key):0
|
15
|
+
2017-04-24 11:06:45.991456|n| DDL:259:column_create Bigram Entries_description
|
16
|
+
2017-04-24 11:06:46.084367|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
|
17
|
+
2017-04-24 11:06:46.099864|n| DDL:259:set_source Bigram.Entries_description Entries.description
|
18
|
+
2017-04-24 11:06:46.099925|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
|
19
|
+
2017-04-24 11:06:46.104701|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
|
20
|
+
2017-04-24 11:06:46.113406|n| grn_fin (0)
|
21
|
+
2017-04-24 11:06:46.117714|n| grn_init: <7.0.1-105-gf940037>
|
22
|
+
2017-04-24 11:06:46.117765|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
23
|
+
2017-04-24 11:06:46.117899|n| RLIMIT_NOFILE(4096,4096)
|
24
|
+
2017-04-24 11:06:47.117263|n| thread start (0/1)
|
25
|
+
2017-04-24 11:06:47.495184|n| thread end (0/0)
|
26
|
+
2017-04-24 11:06:47.498054|n| grn_fin (0)
|
27
|
+
2017-04-24 11:07:45.262160|n| grn_init: <7.0.1-105-gf940037>
|
28
|
+
2017-04-24 11:07:45.262192|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
29
|
+
2017-04-24 11:07:45.262282|n| RLIMIT_NOFILE(4096,4096)
|
30
|
+
2017-04-24 11:07:46.261844|n| thread start (0/1)
|
31
|
+
2017-04-24 11:07:46.580606|n| thread end (0/0)
|
32
|
+
2017-04-24 11:07:46.583733|n| grn_fin (0)
|
33
|
+
2017-04-24 11:07:46.586691|n| grn_init: <7.0.1-105-gf940037>
|
34
|
+
2017-04-24 11:07:46.586724|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
35
|
+
2017-04-24 11:07:46.586809|n| RLIMIT_NOFILE(4096,4096)
|
36
|
+
2017-04-24 11:07:47.585962|n| thread start (0/1)
|
37
|
+
2017-04-24 11:07:48.028639|n| thread end (0/0)
|
38
|
+
2017-04-24 11:07:48.030048|n| grn_fin (0)
|
39
|
+
2017-04-24 11:07:48.034362|n| grn_init: <7.0.1-105-gf940037>
|
40
|
+
2017-04-24 11:07:48.034410|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
41
|
+
2017-04-24 11:07:48.034549|n| RLIMIT_NOFILE(4096,4096)
|
42
|
+
2017-04-24 11:07:49.032453|n| thread start (0/1)
|
43
|
+
2017-04-24 11:07:49.195891|n| thread end (0/0)
|
44
|
+
2017-04-24 11:07:49.196755|n| grn_fin (0)
|
45
|
+
2017-04-24 11:10:47.018307|n| grn_init: <7.0.1-105-gf940037>
|
46
|
+
2017-04-24 11:10:47.018349|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
47
|
+
2017-04-24 11:10:47.018437|n| RLIMIT_NOFILE(4096,4096)
|
48
|
+
2017-04-24 11:10:48.017869|n| thread start (0/1)
|
49
|
+
2017-04-24 11:10:48.313167|n| thread end (0/0)
|
50
|
+
2017-04-24 11:10:48.314042|n| grn_fin (0)
|
51
|
+
2017-04-24 11:10:48.316882|n| grn_init: <7.0.1-105-gf940037>
|
52
|
+
2017-04-24 11:10:48.316926|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
53
|
+
2017-04-24 11:10:48.317007|n| RLIMIT_NOFILE(4096,4096)
|
54
|
+
2017-04-24 11:10:49.315935|n| thread start (0/1)
|
55
|
+
2017-04-24 11:10:49.698905|n| thread end (0/0)
|
56
|
+
2017-04-24 11:10:49.700064|n| grn_fin (0)
|
57
|
+
2017-04-24 11:10:49.705284|n| grn_init: <7.0.1-105-gf940037>
|
58
|
+
2017-04-24 11:10:49.705412|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
59
|
+
2017-04-24 11:10:49.705578|n| RLIMIT_NOFILE(4096,4096)
|
60
|
+
2017-04-24 11:10:50.702205|n| thread start (0/1)
|
61
|
+
2017-04-24 11:10:50.858002|n| thread end (0/0)
|
62
|
+
2017-04-24 11:10:50.858862|n| grn_fin (0)
|
63
|
+
2017-04-24 11:11:12.606175|n| grn_init: <7.0.1-105-gf940037>
|
64
|
+
2017-04-24 11:11:12.606214|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
65
|
+
2017-04-24 11:11:12.606307|n| RLIMIT_NOFILE(4096,4096)
|
66
|
+
2017-04-24 11:11:13.605834|n| thread start (0/1)
|
67
|
+
2017-04-24 11:11:13.842406|n| thread end (0/0)
|
68
|
+
2017-04-24 11:11:13.843288|n| grn_fin (0)
|
69
|
+
2017-04-24 11:11:13.846133|n| grn_init: <7.0.1-105-gf940037>
|
70
|
+
2017-04-24 11:11:13.846164|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
71
|
+
2017-04-24 11:11:13.846254|n| RLIMIT_NOFILE(4096,4096)
|
72
|
+
2017-04-24 11:11:14.845410|n| thread start (0/1)
|
73
|
+
2017-04-24 11:11:15.127688|n| thread end (0/0)
|
74
|
+
2017-04-24 11:11:15.128568|n| grn_fin (0)
|
75
|
+
2017-04-24 11:11:15.131325|n| grn_init: <7.0.1-105-gf940037>
|
76
|
+
2017-04-24 11:11:15.131357|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
77
|
+
2017-04-24 11:11:15.131440|n| RLIMIT_NOFILE(4096,4096)
|
78
|
+
2017-04-24 11:11:16.130617|n| thread start (0/1)
|
79
|
+
2017-04-24 11:11:42.306188|n| grn_init: <7.0.1-105-gf940037>
|
80
|
+
2017-04-24 11:11:42.306219|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
81
|
+
2017-04-24 11:11:42.306306|n| RLIMIT_NOFILE(4096,4096)
|
82
|
+
2017-04-24 11:11:43.308553|n| thread start (0/1)
|
83
|
+
2017-04-24 11:11:43.580788|n| thread end (0/0)
|
84
|
+
2017-04-24 11:11:43.581685|n| grn_fin (0)
|
85
|
+
2017-04-24 11:11:43.584541|n| grn_init: <7.0.1-105-gf940037>
|
86
|
+
2017-04-24 11:11:43.584576|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
87
|
+
2017-04-24 11:11:43.584662|n| RLIMIT_NOFILE(4096,4096)
|
88
|
+
2017-04-24 11:11:44.583985|n| thread start (0/1)
|
89
|
+
2017-04-24 11:11:44.874262|n| thread end (0/0)
|
90
|
+
2017-04-24 11:11:44.875167|n| grn_fin (0)
|
91
|
+
2017-04-24 11:11:44.877971|n| grn_init: <7.0.1-105-gf940037>
|
92
|
+
2017-04-24 11:11:44.878014|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
93
|
+
2017-04-24 11:11:44.878098|n| RLIMIT_NOFILE(4096,4096)
|
94
|
+
2017-04-24 11:11:45.877207|n| thread start (0/1)
|
95
|
+
2017-04-24 11:11:46.066477|n| thread end (0/0)
|
96
|
+
2017-04-24 11:11:46.067611|n| grn_fin (0)
|
97
|
+
2017-04-24 11:12:06.890149|n| grn_init: <7.0.1-105-gf940037>
|
98
|
+
2017-04-24 11:12:06.890181|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
99
|
+
2017-04-24 11:12:06.890263|n| RLIMIT_NOFILE(4096,4096)
|
100
|
+
2017-04-24 11:12:07.889979|n| thread start (0/1)
|
101
|
+
2017-04-24 11:12:08.166979|n| thread end (0/0)
|
102
|
+
2017-04-24 11:12:08.167884|n| grn_fin (0)
|
103
|
+
2017-04-24 11:12:08.170752|n| grn_init: <7.0.1-105-gf940037>
|
104
|
+
2017-04-24 11:12:08.170794|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
105
|
+
2017-04-24 11:12:08.170877|n| RLIMIT_NOFILE(4096,4096)
|
106
|
+
2017-04-24 11:12:09.170034|n| thread start (0/1)
|
107
|
+
2017-04-24 11:12:09.466889|n| thread end (0/0)
|
108
|
+
2017-04-24 11:12:09.467813|n| grn_fin (0)
|
109
|
+
2017-04-24 11:12:09.470729|n| grn_init: <7.0.1-105-gf940037>
|
110
|
+
2017-04-24 11:12:09.470761|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
111
|
+
2017-04-24 11:12:09.470845|n| RLIMIT_NOFILE(4096,4096)
|
112
|
+
2017-04-24 11:12:10.469841|n| thread start (0/1)
|
113
|
+
2017-04-24 11:12:10.568799|n| thread end (0/0)
|
114
|
+
2017-04-24 11:12:10.569881|n| grn_fin (0)
|
115
|
+
2017-04-24 11:12:21.466214|n| grn_init: <7.0.1-105-gf940037>
|
116
|
+
2017-04-24 11:12:21.466249|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
117
|
+
2017-04-24 11:12:21.466332|n| RLIMIT_NOFILE(4096,4096)
|
118
|
+
2017-04-24 11:12:22.466174|n| thread start (0/1)
|
119
|
+
2017-04-24 11:12:22.724694|n| thread end (0/0)
|
120
|
+
2017-04-24 11:12:22.725556|n| grn_fin (0)
|
121
|
+
2017-04-24 11:12:22.728489|n| grn_init: <7.0.1-105-gf940037>
|
122
|
+
2017-04-24 11:12:22.728520|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
123
|
+
2017-04-24 11:12:22.728608|n| RLIMIT_NOFILE(4096,4096)
|
124
|
+
2017-04-24 11:12:23.727545|n| thread start (0/1)
|
125
|
+
2017-04-24 11:12:23.997429|n| thread end (0/0)
|
126
|
+
2017-04-24 11:12:23.998293|n| grn_fin (0)
|
127
|
+
2017-04-24 11:12:24.001106|n| grn_init: <7.0.1-105-gf940037>
|
128
|
+
2017-04-24 11:12:24.001138|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
129
|
+
2017-04-24 11:12:24.001219|n| RLIMIT_NOFILE(4096,4096)
|
130
|
+
2017-04-24 11:12:25.000343|n| thread start (0/1)
|
131
|
+
2017-04-24 11:12:25.201017|n| thread end (0/0)
|
132
|
+
2017-04-24 11:12:25.202162|n| grn_fin (0)
|
133
|
+
2017-04-24 11:19:59.316027|n| grn_init: <7.0.1-105-gf940037>
|
134
|
+
2017-04-24 11:19:59.316064|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
135
|
+
2017-04-24 11:19:59.316148|n| RLIMIT_NOFILE(4096,4096)
|
136
|
+
2017-04-24 11:20:00.315342|n| thread start (0/1)
|
137
|
+
2017-04-24 11:20:00.543339|n| thread end (0/0)
|
138
|
+
2017-04-24 11:20:00.544322|n| grn_fin (0)
|
139
|
+
2017-04-24 11:20:00.547319|n| grn_init: <7.0.1-105-gf940037>
|
140
|
+
2017-04-24 11:20:00.547355|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
141
|
+
2017-04-24 11:20:00.547440|n| RLIMIT_NOFILE(4096,4096)
|
142
|
+
2017-04-24 11:20:01.545653|n| thread start (0/1)
|
143
|
+
2017-04-24 11:20:01.731747|n| thread end (0/0)
|
144
|
+
2017-04-24 11:20:01.732644|n| grn_fin (0)
|
145
|
+
2017-04-24 11:20:01.735519|n| grn_init: <7.0.1-105-gf940037>
|
146
|
+
2017-04-24 11:20:01.735558|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
147
|
+
2017-04-24 11:20:01.735643|n| RLIMIT_NOFILE(4096,4096)
|
148
|
+
2017-04-24 11:20:02.734551|n| thread start (0/1)
|
149
|
+
2017-04-24 11:20:02.951152|n| thread end (0/0)
|
150
|
+
2017-04-24 11:20:02.952691|n| grn_fin (0)
|
151
|
+
2017-04-24 11:20:09.446073|n| grn_init: <7.0.1-105-gf940037>
|
152
|
+
2017-04-24 11:20:09.446115|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
153
|
+
2017-04-24 11:20:09.446201|n| RLIMIT_NOFILE(4096,4096)
|
154
|
+
2017-04-24 11:20:10.448377|n| thread start (0/1)
|
155
|
+
2017-04-24 11:20:10.789136|n| thread end (0/0)
|
156
|
+
2017-04-24 11:20:10.792153|n| grn_fin (0)
|
157
|
+
2017-04-24 13:01:10.344434|e| system call error: Interrupted system call: epoll_wait
|
158
|
+
2017-04-24 13:01:10.344720|e| /tmp/local/lib/libgroonga.so.0(grn_com_event_poll+0x600) [0x7fe1890695cf]
|
159
|
+
2017-04-24 13:01:10.344749|e| /tmp/local/bin/groonga(+0x8db6) [0x564c572ecdb6]
|
160
|
+
2017-04-24 13:01:10.344763|e| /tmp/local/bin/groonga(+0x9e7c) [0x564c572ede7c]
|
161
|
+
2017-04-24 13:01:10.344776|e| /tmp/local/bin/groonga(+0xa035) [0x564c572ee035]
|
162
|
+
2017-04-24 13:01:10.344788|e| /tmp/local/bin/groonga(+0x132b7) [0x564c572f72b7]
|
163
|
+
2017-04-24 13:01:10.344800|e| /tmp/local/bin/groonga(+0x18088) [0x564c572fc088]
|
164
|
+
2017-04-24 13:01:10.344813|e| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7fe1872bf2b1]
|
165
|
+
2017-04-24 13:01:10.344825|e| /tmp/local/bin/groonga(+0x4e2a) [0x564c572e8e2a]
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,79 @@
|
|
1
|
+
2017-04-24 11:06:44.872561|n| grn_init: <7.0.1-105-gf940037>
|
2
|
+
2017-04-24 11:06:44.872642|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
3
|
+
2017-04-24 11:06:44.873832|n| DDL:256:table_create Entries
|
4
|
+
2017-04-24 11:06:44.929837|n| spec:256:update:Entries:48(table:hash_key):0
|
5
|
+
2017-04-24 11:06:44.930157|n| DDL:257:column_create Entries description
|
6
|
+
2017-04-24 11:06:44.979980|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
|
7
|
+
2017-04-24 11:06:45.005342|n| grn_fin (0)
|
8
|
+
2017-04-24 11:06:45.013826|n| grn_init: <7.0.1-105-gf940037>
|
9
|
+
2017-04-24 11:06:45.013966|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
10
|
+
2017-04-24 11:06:45.030106|n| grn_fin (0)
|
11
|
+
2017-04-24 11:06:45.038715|n| grn_init: <7.0.1-105-gf940037>
|
12
|
+
2017-04-24 11:06:45.038857|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
13
|
+
2017-04-24 11:06:45.042555|n| DDL:258:table_create Bigram
|
14
|
+
2017-04-24 11:06:45.088700|n| spec:258:update:Bigram:49(table:pat_key):0
|
15
|
+
2017-04-24 11:06:45.089198|n| DDL:259:column_create Bigram Entries_description
|
16
|
+
2017-04-24 11:06:45.189880|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
|
17
|
+
2017-04-24 11:06:45.210684|n| DDL:259:set_source Bigram.Entries_description Entries.description
|
18
|
+
2017-04-24 11:06:45.210758|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
|
19
|
+
2017-04-24 11:06:45.215438|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
|
20
|
+
2017-04-24 11:06:45.223494|n| grn_fin (0)
|
21
|
+
2017-04-24 11:06:46.117605|n| grn_init: <7.0.1-105-gf940037>
|
22
|
+
2017-04-24 11:06:46.117680|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
23
|
+
2017-04-24 11:06:46.117807|n| RLIMIT_NOFILE(4096,4096)
|
24
|
+
2017-04-24 11:06:47.117914|n| thread start (0/1)
|
25
|
+
2017-04-24 11:06:47.495106|n| thread end (0/0)
|
26
|
+
2017-04-24 11:06:47.498049|n| grn_fin (0)
|
27
|
+
2017-04-24 11:07:45.260497|n| grn_init: <7.0.1-105-gf940037>
|
28
|
+
2017-04-24 11:07:45.260555|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
29
|
+
2017-04-24 11:07:45.260635|n| RLIMIT_NOFILE(4096,4096)
|
30
|
+
2017-04-24 11:07:46.262231|n| thread start (0/1)
|
31
|
+
2017-04-24 11:07:49.196124|n| thread end (0/0)
|
32
|
+
2017-04-24 11:07:49.199045|n| grn_fin (0)
|
33
|
+
2017-04-24 11:10:47.015640|n| grn_init: <7.0.1-105-gf940037>
|
34
|
+
2017-04-24 11:10:47.015723|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
35
|
+
2017-04-24 11:10:47.015811|n| RLIMIT_NOFILE(4096,4096)
|
36
|
+
2017-04-24 11:10:48.018144|n| thread start (0/1)
|
37
|
+
2017-04-24 11:10:50.858117|n| thread end (0/0)
|
38
|
+
2017-04-24 11:10:50.861057|n| grn_fin (0)
|
39
|
+
2017-04-24 11:11:12.604406|n| grn_init: <7.0.1-105-gf940037>
|
40
|
+
2017-04-24 11:11:12.604464|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
41
|
+
2017-04-24 11:11:12.604542|n| RLIMIT_NOFILE(4096,4096)
|
42
|
+
2017-04-24 11:11:13.606243|n| thread start (0/1)
|
43
|
+
2017-04-24 11:11:42.304545|n| grn_init: <7.0.1-105-gf940037>
|
44
|
+
2017-04-24 11:11:42.304594|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
45
|
+
2017-04-24 11:11:42.304674|n| RLIMIT_NOFILE(4096,4096)
|
46
|
+
2017-04-24 11:11:43.305717|n| thread start (0/1)
|
47
|
+
2017-04-24 11:11:46.066584|n| thread end (0/0)
|
48
|
+
2017-04-24 11:11:46.070501|n| grn_fin (0)
|
49
|
+
2017-04-24 11:12:06.886810|n| grn_init: <7.0.1-105-gf940037>
|
50
|
+
2017-04-24 11:12:06.886857|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
51
|
+
2017-04-24 11:12:06.886933|n| RLIMIT_NOFILE(4096,4096)
|
52
|
+
2017-04-24 11:12:06.888501|n| thread start (0/1)
|
53
|
+
2017-04-24 11:12:10.568618|n| thread end (0/0)
|
54
|
+
2017-04-24 11:12:10.571785|n| grn_fin (0)
|
55
|
+
2017-04-24 11:12:21.462928|n| grn_init: <7.0.1-105-gf940037>
|
56
|
+
2017-04-24 11:12:21.462974|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
57
|
+
2017-04-24 11:12:21.463054|n| RLIMIT_NOFILE(4096,4096)
|
58
|
+
2017-04-24 11:12:21.467367|n| thread start (0/1)
|
59
|
+
2017-04-24 11:12:25.201154|n| thread end (0/0)
|
60
|
+
2017-04-24 11:12:25.205066|n| grn_fin (0)
|
61
|
+
2017-04-24 11:19:59.312302|n| grn_init: <7.0.1-105-gf940037>
|
62
|
+
2017-04-24 11:19:59.312348|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
63
|
+
2017-04-24 11:19:59.312424|n| RLIMIT_NOFILE(4096,4096)
|
64
|
+
2017-04-24 11:19:59.314172|n| thread start (0/1)
|
65
|
+
2017-04-24 11:20:02.950972|n| thread end (0/0)
|
66
|
+
2017-04-24 11:20:02.956336|n| grn_fin (0)
|
67
|
+
2017-04-24 11:20:09.443167|n| grn_init: <7.0.1-105-gf940037>
|
68
|
+
2017-04-24 11:20:09.443214|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
|
69
|
+
2017-04-24 11:20:09.443297|n| RLIMIT_NOFILE(4096,4096)
|
70
|
+
2017-04-24 11:20:10.445853|n| thread start (0/1)
|
71
|
+
2017-04-24 11:20:10.789276|n| thread end (0/0)
|
72
|
+
2017-04-24 11:20:10.792230|n| grn_fin (0)
|
73
|
+
2017-04-24 13:01:10.343392|e| system call error: Interrupted system call: epoll_wait
|
74
|
+
2017-04-24 13:01:10.343699|e| /tmp/local/lib/libgroonga.so.0(grn_com_event_poll+0x600) [0x7f8575c9c5cf]
|
75
|
+
2017-04-24 13:01:10.343722|e| groonga(+0xc58b) [0x56012441658b]
|
76
|
+
2017-04-24 13:01:10.343737|e| groonga(+0xde2e) [0x560124417e2e]
|
77
|
+
2017-04-24 13:01:10.343748|e| groonga(+0x54e0) [0x56012440f4e0]
|
78
|
+
2017-04-24 13:01:10.343759|e| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f857478d2b1]
|
79
|
+
2017-04-24 13:01:10.343771|e| groonga(+0x5e6a) [0x56012440fe6a]
|
File without changes
|
data/test/test-parser.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2011-
|
1
|
+
# Copyright (C) 2011-2019 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -267,6 +267,67 @@ class ParserTest < Test::Unit::TestCase
|
|
267
267
|
end
|
268
268
|
end
|
269
269
|
|
270
|
+
class NameFieldTest < self
|
271
|
+
def test_io_flush
|
272
|
+
statistics = parse(<<-LOG)
|
273
|
+
2019-05-09 18:44:25.983672|0x7fff5e4a3060|>io_flush Lexicon.sources_value --output_type json
|
274
|
+
2019-05-09 18:44:25.989502|0x7fff5e4a3060|:000000005833721 flush[Lexicon.sources_value]
|
275
|
+
2019-05-09 18:44:25.989519|0x7fff5e4a3060|:000000005848066 flush[(anonymous:table:dat_key)]
|
276
|
+
2019-05-09 18:44:25.990491|0x7fff5e4a3060|:000000006820471 flush[(anonymous:column:var_size)]
|
277
|
+
2019-05-09 18:44:25.990496|0x7fff5e4a3060|:000000006824538 flush[(anonymous:table:hash_key)]
|
278
|
+
2019-05-09 18:44:25.991425|0x7fff5e4a3060|:000000007753922 flush[(anonymous:column:var_size)]
|
279
|
+
2019-05-09 18:44:25.991427|0x7fff5e4a3060|:000000007755618 flush[(DB)]
|
280
|
+
2019-05-09 18:44:25.991431|0x7fff5e4a3060|<000000007759904 rc=0
|
281
|
+
LOG
|
282
|
+
operations = statistics.first.operations.collect do |operation|
|
283
|
+
[operation[:name], operation[:raw_message]]
|
284
|
+
end
|
285
|
+
expected = [
|
286
|
+
["flush[Lexicon.sources_value]",
|
287
|
+
"flush[Lexicon.sources_value]"],
|
288
|
+
["flush[(anonymous:table:dat_key)]",
|
289
|
+
"flush[(anonymous:table:dat_key)]"],
|
290
|
+
["flush[(anonymous:column:var_size)]",
|
291
|
+
"flush[(anonymous:column:var_size)]"],
|
292
|
+
["flush[(anonymous:table:hash_key)]",
|
293
|
+
"flush[(anonymous:table:hash_key)]"],
|
294
|
+
["flush[(anonymous:column:var_size)]",
|
295
|
+
"flush[(anonymous:column:var_size)]"],
|
296
|
+
["flush[(DB)]",
|
297
|
+
"flush[(DB)]"],
|
298
|
+
]
|
299
|
+
assert_equal(expected, operations)
|
300
|
+
end
|
301
|
+
|
302
|
+
def test_labeled_drilldown
|
303
|
+
statistics = parse(<<-LOG)
|
304
|
+
2019-05-09 19:00:12.085062|0x7ffdf54d2180|>select Memos --limit 0 --output_columns _id --drilldowns[tags].keys tags --drilldowns[tags].adjuster 'categories @ \"full-text-search\" * 2 + categories @ \"mysql\"' --drilldowns[tags].output_columns _key,_nsubrecs,_score --output_type json
|
305
|
+
2019-05-09 19:00:12.085165|0x7ffdf54d2180|:000000000105785 select(3)
|
306
|
+
2019-05-09 19:00:12.085664|0x7ffdf54d2180|:000000000605514 drilldowns[tags].adjust(3)
|
307
|
+
2019-05-09 19:00:12.085672|0x7ffdf54d2180|:000000000611117 drilldowns[tags](3)
|
308
|
+
2019-05-09 19:00:12.085696|0x7ffdf54d2180|:000000000635356 output(0)
|
309
|
+
2019-05-09 19:00:12.085722|0x7ffdf54d2180|:000000000661819 output.drilldowns[tags](3)
|
310
|
+
2019-05-09 19:00:12.085768|0x7ffdf54d2180|<000000000707717 rc=0
|
311
|
+
LOG
|
312
|
+
operations = statistics.first.operations.collect do |operation|
|
313
|
+
[operation[:name], operation[:raw_message]]
|
314
|
+
end
|
315
|
+
expected = [
|
316
|
+
["select",
|
317
|
+
"select(3)"],
|
318
|
+
["drilldowns[tags].adjust",
|
319
|
+
"drilldowns[tags].adjust(3)"],
|
320
|
+
["drilldowns[tags]",
|
321
|
+
"drilldowns[tags](3)"],
|
322
|
+
["output",
|
323
|
+
"output(0)"],
|
324
|
+
["output.drilldowns[tags]",
|
325
|
+
"output.drilldowns[tags](3)"],
|
326
|
+
]
|
327
|
+
assert_equal(expected, operations)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
270
331
|
class ExtraFieldTest < self
|
271
332
|
def test_load
|
272
333
|
statistics = parse(<<-LOG)
|
@@ -275,10 +336,15 @@ class ParserTest < Test::Unit::TestCase
|
|
275
336
|
2017-12-11 09:37:04.517999|0x7fffc430dff0|<000000001061996 rc=-22
|
276
337
|
LOG
|
277
338
|
operations = statistics.first.operations.collect do |operation|
|
278
|
-
[
|
339
|
+
[
|
340
|
+
operation[:name],
|
341
|
+
operation[:n_records],
|
342
|
+
operation[:extra],
|
343
|
+
operation[:raw_message],
|
344
|
+
]
|
279
345
|
end
|
280
346
|
expected = [
|
281
|
-
["load", 3, "[1][2][3]"],
|
347
|
+
["load", 3, "[1][2][3]", "load(3): [1][2][3]"],
|
282
348
|
]
|
283
349
|
assert_equal(expected, operations)
|
284
350
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groonga-query-log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: groonga-command-parser
|
@@ -154,17 +154,17 @@ description: ''
|
|
154
154
|
email:
|
155
155
|
- kou@clear-code.com
|
156
156
|
executables:
|
157
|
-
- groonga-query-log-format-regression-test-logs
|
158
|
-
- groonga-query-log-run-regression-test
|
159
|
-
- groonga-query-log-check-crash
|
160
|
-
- groonga-query-log-replay
|
161
|
-
- groonga-query-log-check-command-version-compatibility
|
162
|
-
- groonga-query-log-verify-server
|
163
|
-
- groonga-query-log-show-running-queries
|
164
157
|
- groonga-query-log-analyze
|
158
|
+
- groonga-query-log-analyze-load
|
159
|
+
- groonga-query-log-check-crash
|
165
160
|
- groonga-query-log-extract
|
161
|
+
- groonga-query-log-check-command-version-compatibility
|
162
|
+
- groonga-query-log-replay
|
163
|
+
- groonga-query-log-format-regression-test-logs
|
166
164
|
- groonga-query-log-detect-memory-leak
|
167
|
-
- groonga-query-log-
|
165
|
+
- groonga-query-log-show-running-queries
|
166
|
+
- groonga-query-log-verify-server
|
167
|
+
- groonga-query-log-run-regression-test
|
168
168
|
extensions: []
|
169
169
|
extra_rdoc_files: []
|
170
170
|
files:
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- test/command/test-analyzer.rb
|
233
233
|
- test/command/test-extract.rb
|
234
234
|
- test/command/test-format-regression-test-logs.rb
|
235
|
+
- test/command/test-run-regression-test.rb
|
235
236
|
- test/fixtures/multi.expected
|
236
237
|
- test/fixtures/n_entries.expected
|
237
238
|
- test/fixtures/no-report-summary.expected
|
@@ -249,8 +250,29 @@ files:
|
|
249
250
|
- test/fixtures/reporter/json-stream.expected
|
250
251
|
- test/fixtures/reporter/json.expected
|
251
252
|
- test/fixtures/run-regression-test/data/data.grn
|
253
|
+
- test/fixtures/run-regression-test/db.new/db
|
254
|
+
- test/fixtures/run-regression-test/db.new/db.0000000
|
255
|
+
- test/fixtures/run-regression-test/db.new/db.0000100
|
256
|
+
- test/fixtures/run-regression-test/db.new/db.0000101
|
257
|
+
- test/fixtures/run-regression-test/db.new/db.0000102
|
258
|
+
- test/fixtures/run-regression-test/db.new/db.0000103
|
259
|
+
- test/fixtures/run-regression-test/db.new/db.0000103.c
|
260
|
+
- test/fixtures/run-regression-test/db.new/db.001
|
261
|
+
- test/fixtures/run-regression-test/db.new/db.conf
|
262
|
+
- test/fixtures/run-regression-test/db.new/groonga.log
|
263
|
+
- test/fixtures/run-regression-test/db.old/db
|
264
|
+
- test/fixtures/run-regression-test/db.old/db.0000000
|
265
|
+
- test/fixtures/run-regression-test/db.old/db.0000100
|
266
|
+
- test/fixtures/run-regression-test/db.old/db.0000101
|
267
|
+
- test/fixtures/run-regression-test/db.old/db.0000102
|
268
|
+
- test/fixtures/run-regression-test/db.old/db.0000103
|
269
|
+
- test/fixtures/run-regression-test/db.old/db.0000103.c
|
270
|
+
- test/fixtures/run-regression-test/db.old/db.001
|
271
|
+
- test/fixtures/run-regression-test/db.old/db.conf
|
272
|
+
- test/fixtures/run-regression-test/db.old/groonga.log
|
252
273
|
- test/fixtures/run-regression-test/indexes/indexes.grn
|
253
274
|
- test/fixtures/run-regression-test/query-logs/query.log
|
275
|
+
- test/fixtures/run-regression-test/results/query.log
|
254
276
|
- test/fixtures/run-regression-test/schema/schema.grn
|
255
277
|
- test/fixtures/target-commands.expected
|
256
278
|
- test/fixtures/target-tables.expected
|
@@ -280,7 +302,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
280
302
|
- !ruby/object:Gem::Version
|
281
303
|
version: '0'
|
282
304
|
requirements: []
|
283
|
-
|
305
|
+
rubyforge_project:
|
306
|
+
rubygems_version: 2.7.6.2
|
284
307
|
signing_key:
|
285
308
|
specification_version: 4
|
286
309
|
summary: Groonga-query-log is a collection of library and tools to process [Groonga](http://groonga.org/)'s
|
@@ -288,35 +311,57 @@ summary: Groonga-query-log is a collection of library and tools to process [Groo
|
|
288
311
|
as a library. You can analyze your Groonga's queries and test with your Groonga's
|
289
312
|
query log by using groonga-query-log as a tool.
|
290
313
|
test_files:
|
291
|
-
- test/
|
314
|
+
- test/test-parser.rb
|
315
|
+
- test/helper.rb
|
316
|
+
- test/run-test.rb
|
317
|
+
- test/test-response-comparer.rb
|
318
|
+
- test/command/test-extract.rb
|
319
|
+
- test/command/test-format-regression-test-logs.rb
|
320
|
+
- test/command/test-run-regression-test.rb
|
321
|
+
- test/command/test-analyzer.rb
|
322
|
+
- test/test-replayer.rb
|
323
|
+
- test/fixtures/target-tables.expected
|
292
324
|
- test/fixtures/reporter/html.expected
|
293
|
-
- test/fixtures/reporter/json-stream.expected
|
294
325
|
- test/fixtures/reporter/json.expected
|
295
|
-
- test/fixtures/
|
296
|
-
- test/fixtures/
|
297
|
-
- test/fixtures/
|
298
|
-
- test/fixtures/
|
326
|
+
- test/fixtures/reporter/console.expected
|
327
|
+
- test/fixtures/reporter/json-stream.expected
|
328
|
+
- test/fixtures/regression-test-logs/error.log
|
329
|
+
- test/fixtures/regression-test-logs/url-format.log
|
330
|
+
- test/fixtures/regression-test-logs/command-format.log
|
331
|
+
- test/fixtures/other-query.log
|
299
332
|
- test/fixtures/no-report-summary.expected
|
300
|
-
- test/fixtures/
|
301
|
-
- test/fixtures/run-regression-test/data/data.grn
|
333
|
+
- test/fixtures/run-regression-test/results/query.log
|
302
334
|
- test/fixtures/run-regression-test/query-logs/query.log
|
303
|
-
- test/fixtures/run-regression-test/indexes/indexes.grn
|
304
335
|
- test/fixtures/run-regression-test/schema/schema.grn
|
305
|
-
- test/fixtures/
|
336
|
+
- test/fixtures/run-regression-test/indexes/indexes.grn
|
337
|
+
- test/fixtures/run-regression-test/db.new/db.0000000
|
338
|
+
- test/fixtures/run-regression-test/db.new/db.0000100
|
339
|
+
- test/fixtures/run-regression-test/db.new/db.0000103.c
|
340
|
+
- test/fixtures/run-regression-test/db.new/db
|
341
|
+
- test/fixtures/run-regression-test/db.new/db.0000102
|
342
|
+
- test/fixtures/run-regression-test/db.new/groonga.log
|
343
|
+
- test/fixtures/run-regression-test/db.new/db.001
|
344
|
+
- test/fixtures/run-regression-test/db.new/db.conf
|
345
|
+
- test/fixtures/run-regression-test/db.new/db.0000103
|
346
|
+
- test/fixtures/run-regression-test/db.new/db.0000101
|
347
|
+
- test/fixtures/run-regression-test/db.old/db.0000000
|
348
|
+
- test/fixtures/run-regression-test/db.old/db.0000100
|
349
|
+
- test/fixtures/run-regression-test/db.old/db.0000103.c
|
350
|
+
- test/fixtures/run-regression-test/db.old/db
|
351
|
+
- test/fixtures/run-regression-test/db.old/db.0000102
|
352
|
+
- test/fixtures/run-regression-test/db.old/groonga.log
|
353
|
+
- test/fixtures/run-regression-test/db.old/db.001
|
354
|
+
- test/fixtures/run-regression-test/db.old/db.conf
|
355
|
+
- test/fixtures/run-regression-test/db.old/db.0000103
|
356
|
+
- test/fixtures/run-regression-test/db.old/db.0000101
|
357
|
+
- test/fixtures/run-regression-test/data/data.grn
|
306
358
|
- test/fixtures/query.log
|
307
|
-
- test/fixtures/target-tables.expected
|
308
359
|
- test/fixtures/n_entries.expected
|
309
360
|
- test/fixtures/multi.expected
|
310
|
-
- test/fixtures/
|
311
|
-
- test/fixtures/
|
312
|
-
- test/fixtures/
|
313
|
-
- test/
|
314
|
-
- test/
|
315
|
-
- test/command/test-extract.rb
|
316
|
-
- test/test-response-comparer.rb
|
317
|
-
- test/test-replayer.rb
|
361
|
+
- test/fixtures/order/-elapsed.expected
|
362
|
+
- test/fixtures/order/start-time.expected
|
363
|
+
- test/fixtures/order/elapsed.expected
|
364
|
+
- test/fixtures/order/-start-time.expected
|
365
|
+
- test/fixtures/target-commands.expected
|
318
366
|
- test/test-incompatibility-detector.rb
|
319
367
|
- test/test-filter-rewriter.rb
|
320
|
-
- test/test-parser.rb
|
321
|
-
- test/helper.rb
|
322
|
-
- test/run-test.rb
|