fluent-plugin-influxdb 0.1.8 → 0.2.0
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.
- checksums.yaml +4 -4
- data/History.md +5 -0
- data/README.md +5 -0
- data/fluent-plugin-influxdb.gemspec +4 -2
- data/lib/fluent/plugin/out_influxdb.rb +7 -7
- data/test/helper.rb +30 -1
- data/test/plugin/test_out_influxdb.rb +66 -0
- metadata +36 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4773755a8ead0cdfa5ecb44d7dcc2a56f1405388
|
4
|
+
data.tar.gz: 8ae5a2544035c5f852ccc4c1173bf25701cd9021
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30c63e6ee4dae8a73e6087777fb25c21da02cd5745039d9c9a5b8667a3aeea86d7769c6e0784581b7186a5d85dabb282a58f7a2afbd8ef06dc55d4b0e7c2e9ac
|
7
|
+
data.tar.gz: 795949221c8242345bcb26e826d080e75c911774fda4eedeb8716aaf98dfb1abf88f3ea239f680f2e24b957d5d8ab1ffced4ae00c05bbced556492e93b948906
|
data/History.md
CHANGED
data/README.md
CHANGED
@@ -4,6 +4,11 @@ fluent-plugin-influxdb is a buffered output plugin for fluentd and influxDB.
|
|
4
4
|
|
5
5
|
If you are using fluentd as a collector and want to organize your time-series data in influxDB, this is your right choice!
|
6
6
|
|
7
|
+
## NOTE
|
8
|
+
|
9
|
+
This version uses influxdb-ruby version 0.2.0 which no longer supports InfluxDB version 0.8 (which is also deprecated).
|
10
|
+
If you are using InfluxDB version 0.8 please specify version 0.1.8 of this plugin.
|
11
|
+
|
7
12
|
## Installation
|
8
13
|
|
9
14
|
$ fluent-gem install fluent-plugin-influxdb
|
@@ -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-influxdb"
|
6
|
-
s.version = '0.
|
6
|
+
s.version = '0.2.0'
|
7
7
|
s.authors = ["Masahiro Nakagawa", "FangLi"]
|
8
8
|
s.email = ["repeatedly@gmail.com", "surivlee@gmail.com"]
|
9
9
|
s.description = %q{InfluxDB output plugin for Fluentd}
|
@@ -17,7 +17,9 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
19
|
s.add_runtime_dependency "fluentd", [">= 0.10.49", "< 2"]
|
20
|
-
s.add_runtime_dependency "influxdb", "
|
20
|
+
s.add_runtime_dependency "influxdb", ">= 0.2.0"
|
21
21
|
|
22
22
|
s.add_development_dependency "rake"
|
23
|
+
s.add_development_dependency "pry"
|
24
|
+
s.add_development_dependency "test-unit"
|
23
25
|
end
|
@@ -45,17 +45,17 @@ class Fluent::InfluxdbOutput < Fluent::BufferedOutput
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def write(chunk)
|
48
|
-
points =
|
48
|
+
points = []
|
49
49
|
chunk.msgpack_each do |tag, time, record|
|
50
50
|
unless record.empty?
|
51
|
-
|
52
|
-
|
53
|
-
|
51
|
+
point = {}
|
52
|
+
point[:timestamp] = record.delete('time') || time
|
53
|
+
point[:series] = tag
|
54
|
+
point[:values] = record
|
55
|
+
points << point
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
57
|
-
points
|
58
|
-
@influxdb.write_point(tag, records)
|
59
|
-
}
|
59
|
+
@influxdb.write_points(points)
|
60
60
|
end
|
61
61
|
end
|
data/test/helper.rb
CHANGED
@@ -1 +1,30 @@
|
|
1
|
-
require '
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
require 'pry'
|
4
|
+
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'test/unit'
|
13
|
+
|
14
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
15
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
16
|
+
require 'fluent/test'
|
17
|
+
unless ENV.has_key?('VERBOSE')
|
18
|
+
nulllogger = Object.new
|
19
|
+
nulllogger.instance_eval {|obj|
|
20
|
+
def method_missing(method, *args)
|
21
|
+
# pass
|
22
|
+
end
|
23
|
+
}
|
24
|
+
$log = nulllogger
|
25
|
+
end
|
26
|
+
|
27
|
+
require 'fluent/plugin/out_influxdb'
|
28
|
+
|
29
|
+
class Test::Unit::TestCase
|
30
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'helper'
|
2
|
+
class InfluxdbOutputTest < Test::Unit::TestCase
|
3
|
+
def setup
|
4
|
+
Fluent::Test.setup
|
5
|
+
end
|
6
|
+
|
7
|
+
CONFIG = %[
|
8
|
+
type influxdb
|
9
|
+
host localhost
|
10
|
+
port 8086
|
11
|
+
dbname test
|
12
|
+
user testuser
|
13
|
+
password mypwd
|
14
|
+
use_ssl false
|
15
|
+
time_precision s
|
16
|
+
]
|
17
|
+
|
18
|
+
def create_raw_driver(conf=CONFIG, tag='test')
|
19
|
+
Fluent::Test::BufferedOutputTestDriver.new(Fluent::InfluxdbOutput, tag).configure(conf)
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_driver(conf=CONFIG, tag='test')
|
23
|
+
Fluent::Test::BufferedOutputTestDriver.new(Fluent::InfluxdbOutput, tag) do
|
24
|
+
def write(chunk)
|
25
|
+
chunk.read
|
26
|
+
end
|
27
|
+
end.configure(conf)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_configure
|
31
|
+
driver = create_raw_driver %[
|
32
|
+
dbname test
|
33
|
+
user testuser
|
34
|
+
password mypwd
|
35
|
+
]
|
36
|
+
assert_equal('test', driver.instance.config['dbname'])
|
37
|
+
assert_equal('testuser', driver.instance.config['user'])
|
38
|
+
assert_equal('xxxxxx', driver.instance.config['password'])
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_format
|
42
|
+
driver = create_driver(CONFIG, 'test')
|
43
|
+
time = Time.parse('2011-01-02 13:14:15 UTC').to_i
|
44
|
+
|
45
|
+
driver.emit({'a' => 1}, time)
|
46
|
+
driver.emit({'a' => 2}, time)
|
47
|
+
|
48
|
+
driver.expect_format(['test', time, {'a' => 1}].to_msgpack)
|
49
|
+
driver.expect_format(['test', time, {'a' => 2}].to_msgpack)
|
50
|
+
|
51
|
+
driver.run
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_write
|
55
|
+
driver = create_driver(CONFIG, 'input.influxdb')
|
56
|
+
|
57
|
+
time = Time.parse("2011-01-02 13:14:15 UTC").to_i
|
58
|
+
driver.emit({'a' => 1}, time)
|
59
|
+
driver.emit({'a' => 2}, time)
|
60
|
+
|
61
|
+
data = driver.run
|
62
|
+
|
63
|
+
assert_equal(['input.influxdb', time, {'a' => 1}].to_msgpack +
|
64
|
+
['input.influxdb', time, {'a' => 2}].to_msgpack, data)
|
65
|
+
end
|
66
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-influxdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro Nakagawa
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
@@ -35,16 +35,16 @@ dependencies:
|
|
35
35
|
name: influxdb
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.2.0
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.2.0
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rake
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,6 +59,34 @@ dependencies:
|
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: pry
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: test-unit
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
62
90
|
description: InfluxDB output plugin for Fluentd
|
63
91
|
email:
|
64
92
|
- repeatedly@gmail.com
|
@@ -76,6 +104,7 @@ files:
|
|
76
104
|
- fluent-plugin-influxdb.gemspec
|
77
105
|
- lib/fluent/plugin/out_influxdb.rb
|
78
106
|
- test/helper.rb
|
107
|
+
- test/plugin/test_out_influxdb.rb
|
79
108
|
homepage: https://github.com/fangli/fluent-plugin-influxdb
|
80
109
|
licenses:
|
81
110
|
- MIT
|
@@ -102,3 +131,4 @@ specification_version: 4
|
|
102
131
|
summary: A buffered output plugin for fluentd and influxDB
|
103
132
|
test_files:
|
104
133
|
- test/helper.rb
|
134
|
+
- test/plugin/test_out_influxdb.rb
|