myslog 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80788f037295ef11c3170012ebc5b2796190bb71
4
- data.tar.gz: c89207a4068ada4490f8973ca7026d398b8bb9ec
3
+ metadata.gz: 01ae65979b5ba26faf80d43e15c9a0f8178e0f61
4
+ data.tar.gz: 8e4c38a14bf1fdd953ee165423e5fea39395fed0
5
5
  SHA512:
6
- metadata.gz: 5c6800cf04a879821b1fcab7f2d0d244f2230fff976b599426734893c0f316c3d3c0fbe62bad227f8ede031736b74e99ee775dfa273371bd465f9db06a080dac
7
- data.tar.gz: 91ada3731ba6290a078a1768c2127274f700681490030697b335228f2c13bfd83fef58f15206ffe9484052cc3db09205a36b1defa657c483f495fd0f0b31b086
6
+ metadata.gz: 781f661946cde324e8ae78e5ee30aaed434478d07344b3abe699fc6993d5b18e1d93e1685b88f0026c0e3be97438bddb063c8562361474c2e4b048b2d330e4aa
7
+ data.tar.gz: 8d4965c1611b43bbc04a1d911da3d0e2ae6a978bf621e80c057cd2add85ebd0b9ba00693071c452ef8919a94537e8505a61ffb728a00749f097831c3b6f68c62
@@ -1,3 +1,5 @@
1
+ before_install:
2
+ - gem update bundler
1
3
  language: ruby
2
4
  rvm:
3
5
  - 1.9.3
@@ -0,0 +1,3 @@
1
+ # 0.1.0
2
+
3
+ - [#11] Support MySQL 5.7
@@ -52,6 +52,8 @@ class MySlog
52
52
  elems = record[2..-1].strip().split " "
53
53
  if elems.size == 3 && elems[0] == "Time:"
54
54
  response[:date] = Time.parse(elems[1]+" "+elems[2])
55
+ elsif elems.size == 2 && elems[0] == "Time:"
56
+ response[:date] = Time.parse(elems[1][0..9]+" "+elems[1][11..18])
55
57
  else
56
58
  elems.each_with_index do |elem,i|
57
59
  if elem.include?(":") && !elems[i+1].include?(":")
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "myslog"
3
- spec.version = "0.0.11"
3
+ spec.version = "0.1.0"
4
4
  spec.authors = ["taka84u9"]
5
5
  spec.email = ["taka84u9@gmail.com"]
6
6
  spec.summary = "MySQL slow query parser."
7
7
  spec.description = "MySQL slow query parser."
8
- spec.homepage = "https://github.com/taka84u9/myslog"
8
+ spec.homepage = "https://github.com/yuku-t/myslog"
9
9
 
10
10
  spec.files = `git ls-files -z`.split("\x0")
11
11
  spec.require_paths = ["lib"]
@@ -41,6 +41,18 @@ use webtie;
41
41
  tm.to_id = 21259 and
42
42
  tm.to_group = 'retard_user' and
43
43
  tms.description = 'new';
44
+ # Time: 2016-01-29T05:45:46.299805Z
45
+ # User@Host: root[root] @ localhost [] Id: 2
46
+ # Query_time: 1.000537 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
47
+ SET timestamp=1455094924;
48
+ select sleep(1);
49
+ # Time: 2016-02-10T18:02:16.411200+09:00
50
+ # User@Host: root[root] @ localhost [] Id: 2
51
+ # Query_time: 2.000361 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
52
+ use mysql;
53
+ SET timestamp=1455094936;
54
+ select
55
+ sleep(2);
44
56
  EOF
45
57
  end
46
58
 
@@ -97,6 +109,19 @@ use webtie;
97
109
  expect(record[0]).to eq(
98
110
  "# Time: 010626 10:44:51"
99
111
  )
112
+
113
+ record = results[4]
114
+ expect(record.size).to eq(4)
115
+ expect(record[0]).to eq(
116
+ "# Time: 2016-01-29T05:45:46.299805Z"
117
+ )
118
+
119
+ record = results[5]
120
+ expect(record.size).to eq(4)
121
+ expect(record[0]).to eq(
122
+ "# Time: 2016-02-10T18:02:16.411200+09:00"
123
+ )
124
+
100
125
  end
101
126
  end
102
127
 
@@ -151,6 +176,76 @@ use webtie;
151
176
  end
152
177
  end
153
178
 
179
+ context "given full log by UTC in MySQL5.7 and later" do
180
+ describe "response" do
181
+ before :each do
182
+ @date = Time.at(1317619058)
183
+ @user = "root[root]"
184
+ @host = "localhost"
185
+ @host_ip = ""
186
+ @query_time = 0.000270
187
+ @lock_time = 0.000097
188
+ @rows_sent = 1
189
+ @rows_examined = 0
190
+ @sql = "SET timestamp=1317619058; SELECT * FROM life;"
191
+ @lines = [
192
+ "# Time: #{@date.strftime("%y-%m-%dT%H:%M:%S.%6N")}Z",
193
+ "# User@Host: #{@user} @ #{@host} [#{@host_ip}]",
194
+ "# Query_time: #{@query_time} Lock_time: #{@lock_time} Rows_sent: #{@rows_sent} Rows_examined: #{@rows_examined}",
195
+ @sql
196
+ ]
197
+ @response = @myslog.parse_record(@lines)
198
+ end
199
+
200
+ it "should have expected values" do
201
+ expect(@response[:date].to_i).to eq(@date.to_i)
202
+ expect(@response[:user]).to eq(@user)
203
+ expect(@response[:host]).to eq(@host)
204
+ expect(@response[:host_ip]).to eq(@host_ip)
205
+ expect(@response[:query_time]).to eq(@query_time)
206
+ expect(@response[:lock_time]).to eq(@lock_time)
207
+ expect(@response[:rows_sent]).to eq(@rows_sent)
208
+ expect(@response[:rows_examined]).to eq(@rows_examined)
209
+ expect(@response[:sql]).to eq(@sql.strip)
210
+ end
211
+ end
212
+ end
213
+
214
+ context "given full log by JST in MySQL5.7 and later" do
215
+ describe "response" do
216
+ before :each do
217
+ @date = Time.at(1317619058)
218
+ @user = "root[root]"
219
+ @host = "localhost"
220
+ @host_ip = ""
221
+ @query_time = 0.000270
222
+ @lock_time = 0.000097
223
+ @rows_sent = 1
224
+ @rows_examined = 0
225
+ @sql = "SET timestamp=1317619058; SELECT * FROM life;"
226
+ @lines = [
227
+ "# Time: #{@date.strftime("%y-%m-%dT%H:%M:%S.%6N")}+09:00",
228
+ "# User@Host: #{@user} @ #{@host} [#{@host_ip}]",
229
+ "# Query_time: #{@query_time} Lock_time: #{@lock_time} Rows_sent: #{@rows_sent} Rows_examined: #{@rows_examined}",
230
+ @sql
231
+ ]
232
+ @response = @myslog.parse_record(@lines)
233
+ end
234
+
235
+ it "should have expected values" do
236
+ expect(@response[:date].to_i).to eq(@date.to_i)
237
+ expect(@response[:user]).to eq(@user)
238
+ expect(@response[:host]).to eq(@host)
239
+ expect(@response[:host_ip]).to eq(@host_ip)
240
+ expect(@response[:query_time]).to eq(@query_time)
241
+ expect(@response[:lock_time]).to eq(@lock_time)
242
+ expect(@response[:rows_sent]).to eq(@rows_sent)
243
+ expect(@response[:rows_examined]).to eq(@rows_examined)
244
+ expect(@response[:sql]).to eq(@sql.strip)
245
+ end
246
+ end
247
+ end
248
+
154
249
  context "given partial log" do
155
250
  describe "response" do
156
251
  before :each do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myslog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - taka84u9
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-04 00:00:00.000000000 Z
11
+ date: 2016-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -62,6 +62,7 @@ files:
62
62
  - ".coverrails.yml"
63
63
  - ".gitignore"
64
64
  - ".travis.yml"
65
+ - CHANGELOG.md
65
66
  - Gemfile
66
67
  - LICENSE
67
68
  - README.md
@@ -70,7 +71,7 @@ files:
70
71
  - myslog.gemspec
71
72
  - spec/myslog_spec.rb
72
73
  - spec/spec_helper.rb
73
- homepage: https://github.com/taka84u9/myslog
74
+ homepage: https://github.com/yuku-t/myslog
74
75
  licenses: []
75
76
  metadata: {}
76
77
  post_install_message:
@@ -89,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
90
  version: '0'
90
91
  requirements: []
91
92
  rubyforge_project:
92
- rubygems_version: 2.2.2
93
+ rubygems_version: 2.4.5.1
93
94
  signing_key:
94
95
  specification_version: 4
95
96
  summary: MySQL slow query parser.