fluent-plugin-mysqlslowquery 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source :rubygems
2
+
3
+ gemspec
data/README.md CHANGED
@@ -2,21 +2,18 @@
2
2
 
3
3
  Fluent input plugin for MySQL slow query log file.
4
4
 
5
- ##How to use
6
-
7
- Puts in_mysql_slow_query.rb to plugin directory.
5
+ ##Installation
8
6
 
9
7
  ```shell
10
- % cp in_mysql_slow_query.rb path/to/fluent/plugin
8
+ % gem install fluent-plugin-mysqlslowquery
11
9
  ```
12
10
 
13
- Edit setting file.
11
+ ##How to use
14
12
 
15
- ```shell
16
- % edit fluent.conf
17
- ```
13
+ Edit conf file.
18
14
 
19
- ```
15
+ ```conf
16
+ #/etc/fluentd/fluent.conf
20
17
  <source>
21
18
  type mysql_slow_query
22
19
  path /path/to/mysqld-slow.log
@@ -13,7 +13,9 @@ Gem::Specification.new do |gem|
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = "fluent-plugin-mysqlslowquery"
15
15
  gem.require_paths = ["lib"]
16
- gem.version = "0.0.1"
16
+ gem.version = "0.0.2"
17
17
  gem.add_development_dependency "fluentd"
18
+ gem.add_development_dependency "myslog"
18
19
  gem.add_runtime_dependency "fluentd"
20
+ gem.add_runtime_dependency "myslog"
19
21
  end
@@ -1,33 +1,50 @@
1
- class MySQLSlowQueryInput < Fluent::TailInput
2
- Fluent::Plugin.register_input('mysql_slow_query', self)
1
+ #
2
+ # in_mysql_slow_query
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ require "myslog"
17
+
18
+ module Fluent
19
+
20
+ class MySQLSlowQueryInput < TailInput
21
+ Plugin.register_input('mysql_slow_query', self)
3
22
 
4
23
  def configure_parser(conf)
5
- @_time = Time.new.to_i
6
- @_record = {}
24
+ @parser = MySlog.new
7
25
  end
8
26
 
9
- def parse_line(line)
10
- if line.start_with?("#")
11
- if line[2, 5] == "Time:"
12
- remain = line[7..-1].strip
13
- @_time = Time.strptime(remain, '%y%m%d %H:%M:%S').to_i
14
- elsif line[2, 10] == "User@Host:"
15
- remain = line[12..-1].split("@").map{|s| s.strip}
16
- @_record["user"] = remain[0]
17
- @_record["host"] = remain[1]
18
- elsif line[2, 11] == "Query_time:"
19
- sl = line.split
20
- @_record["query_time"] = sl[2].to_f
21
- @_record["lock_time"] = sl[4].to_f
22
- @_record["rows_sent"] = sl[6].to_i
23
- @_record["rows_examined"] = sl[8].to_i
27
+ def receive_lines(lines)
28
+ es = MultiEventStream.new
29
+ @parser.divide(lines).each do |record|
30
+ begin
31
+ record = @parser.parse_record(record)
32
+ if time = record.delete(:date)
33
+ time = time.to_i
34
+ else
35
+ time = Time.now.to_i
36
+ end
37
+ es.add(time, record)
38
+ rescue
39
+ $log.warn record, :error=>$!.to_s
40
+ $log.debug_backtrace
24
41
  end
25
- elsif not line.upcase.start_with?('USE') and not line.upcase.start_with?('SET')
26
- @_record["sql"] = line
27
- n_record = @_record.clone
28
- @_record = {}
29
- return @_time, n_record
30
42
  end
31
- return nil, nil
43
+
44
+ unless es.empty?
45
+ Engine.emit_stream(@tag, es)
46
+ end
32
47
  end
33
48
  end
49
+
50
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-mysqlslowquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-05 00:00:00.000000000Z
12
+ date: 2012-06-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
16
- requirement: &70320037856180 !ruby/object:Gem::Requirement
16
+ requirement: &70358293308920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,32 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70320037856180
24
+ version_requirements: *70358293308920
25
+ - !ruby/object:Gem::Dependency
26
+ name: myslog
27
+ requirement: &70358293308140 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70358293308140
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: fluentd
27
- requirement: &70320037855740 !ruby/object:Gem::Requirement
38
+ requirement: &70358293307240 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70358293307240
47
+ - !ruby/object:Gem::Dependency
48
+ name: myslog
49
+ requirement: &70358293306100 !ruby/object:Gem::Requirement
28
50
  none: false
29
51
  requirements:
30
52
  - - ! '>='
@@ -32,7 +54,7 @@ dependencies:
32
54
  version: '0'
33
55
  type: :runtime
34
56
  prerelease: false
35
- version_requirements: *70320037855740
57
+ version_requirements: *70358293306100
36
58
  description: Fluent input plugin for MySQL slow query log file.
37
59
  email:
38
60
  - taka84u9@gmail.com
@@ -41,6 +63,7 @@ extensions: []
41
63
  extra_rdoc_files: []
42
64
  files:
43
65
  - .gitignore
66
+ - Gemfile
44
67
  - README.md
45
68
  - Rakefile
46
69
  - fluent-plugin-mysqlslowquery.gemspec
@@ -70,3 +93,4 @@ signing_key:
70
93
  specification_version: 3
71
94
  summary: Fluent input plugin for MySQL slow query log file.
72
95
  test_files: []
96
+ has_rdoc: