fluent-plugin-mysql-query 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +16 -7
- data/fluent-plugin-mysql-query.gemspec +1 -1
- data/lib/fluent/plugin/in_mysql_query.rb +4 -0
- metadata +8 -8
data/README.md
CHANGED
@@ -22,18 +22,21 @@ gem install fluent-plugin-mysql-query
|
|
22
22
|
`````
|
23
23
|
<source>
|
24
24
|
type mysql_query
|
25
|
-
|
25
|
+
host localhost # Optional (default: localhost)
|
26
26
|
port 3306 # Optional (default: 3306)
|
27
27
|
username nagios # Optional (default: root)
|
28
28
|
password passw0rd # Optional (default nopassword)
|
29
29
|
interval 30s # Optional (default: 1m)
|
30
30
|
tag input.mysql # Required
|
31
31
|
query SHOW VARIABLES LIKE 'Thread_%' # Required
|
32
|
-
#
|
33
|
-
record_hostname yes # Optional (
|
34
|
-
# multi row results
|
35
|
-
nest_result
|
36
|
-
|
32
|
+
# record hostname into message.
|
33
|
+
record_hostname yes # Optional (default: no)
|
34
|
+
# multi row results into nested record or separated message.
|
35
|
+
nest_result yes # Optional (default: no)
|
36
|
+
nest_key data # Optional (default: result)
|
37
|
+
# record the number of lines of a query result
|
38
|
+
row_count yes # Optional (default: no)
|
39
|
+
row_count_key row_count # Optional (default: row_count)
|
37
40
|
</source>
|
38
41
|
|
39
42
|
<match input.mysql>
|
@@ -47,16 +50,22 @@ record_hostname: yes, nest_result: no
|
|
47
50
|
input.mysql: {"hostname":"myhost.example.com","Variable_name":"thread_cache_size","Value":"16"}
|
48
51
|
input.mysql: {"hostname":"myhost.example.com","Variable_name":"thread_stack","Value":"262144"}
|
49
52
|
`````
|
50
|
-
record_hostname: yes, nest_result: yes,
|
53
|
+
record_hostname: yes, nest_result: yes, nest_key: data
|
51
54
|
`````
|
52
55
|
input.mysql: {"hostname":"myhost.example.com","data":[{"Variable_name":"thread_cache_size","Value":"16"},{"Variable_name":"thread_stack","Value":"262144"}]}
|
53
56
|
`````
|
57
|
+
record_hostname: yes, nest_result: yes, nest_key: data, row_count: yes, row_count_key: row_count
|
58
|
+
`````
|
59
|
+
input.mysql: {"hostname":"myhost.example.com","row_count":2,"data":[{"Variable_name":"thread_cache_size","Value":"16"},{"Variable_name":"thread_stack","Value":"262144"}]}
|
60
|
+
`````
|
54
61
|
|
55
62
|
### Example Query
|
56
63
|
* SHOW VARIABLES LIKE 'Thread_%';
|
57
64
|
* SELECT MAX(id) AS max_foo_id FROM foo_table;
|
58
65
|
* SHOW FULL PROCESSLIST;
|
59
66
|
* INSERT INTO log (data, created_at) VALUES((SELECT MAX(id) FROM foo_table), NOW());
|
67
|
+
* SHOW SLAVE STATUS;
|
68
|
+
* SHOW INNODB STATUS;
|
60
69
|
|
61
70
|
## TODO
|
62
71
|
patches welcome!
|
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "fluent-plugin-mysql-query"
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "0.2.1"
|
7
7
|
s.authors = ["Kentaro Yoshida"]
|
8
8
|
s.email = ["y.ken.studio@gmail.com"]
|
9
9
|
s.homepage = "https://github.com/y-ken/fluent-plugin-mysql-query"
|
@@ -18,6 +18,8 @@ module Fluent
|
|
18
18
|
config_param :query, :string
|
19
19
|
config_param :nest_result, :string, :default => nil
|
20
20
|
config_param :nest_key, :string, :default => 'result'
|
21
|
+
config_param :row_count, :string, :default => nil
|
22
|
+
config_param :row_count_key, :string, :default => 'row_count'
|
21
23
|
config_param :record_hostname, :string, :default => nil
|
22
24
|
|
23
25
|
def configure(conf)
|
@@ -25,6 +27,7 @@ module Fluent
|
|
25
27
|
@hostname = get_mysql_hostname
|
26
28
|
@interval = Config.time_value(@interval)
|
27
29
|
@nest_result = Config.bool_value(@nest_result) || false
|
30
|
+
@row_count = Config.bool_value(@row_count) || false
|
28
31
|
@record_hostname = Config.bool_value(@record_hostname) || false
|
29
32
|
$log.info "adding mysql_query job: [#{@query}] interval: #{@interval}sec"
|
30
33
|
end
|
@@ -43,6 +46,7 @@ module Fluent
|
|
43
46
|
record = Hash.new
|
44
47
|
record.store('hostname', @hostname) if @record_hostname
|
45
48
|
result = get_exec_result
|
49
|
+
record.store(@row_count_key, result.size) if @row_count
|
46
50
|
if (@nest_result)
|
47
51
|
record.store(@nest_key, result)
|
48
52
|
Engine.emit(tag, Engine.now, record)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-mysql-query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
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-10-
|
12
|
+
date: 2012-10-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
16
|
-
requirement: &
|
16
|
+
requirement: &10854720 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *10854720
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: fluentd
|
27
|
-
requirement: &
|
27
|
+
requirement: &10846780 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *10846780
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mysql2
|
38
|
-
requirement: &
|
38
|
+
requirement: &10846340 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *10846340
|
47
47
|
description:
|
48
48
|
email:
|
49
49
|
- y.ken.studio@gmail.com
|