fluent-plugin-influxdb 0.2.4 → 0.2.5

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: 0fb64d01147c57b8d3ea6bafc973d053689c62f7
4
- data.tar.gz: ddd20e12317330808ec2a1e35371313bf7978fad
3
+ metadata.gz: 17b05b4d4062e69351985214664cd8802f693884
4
+ data.tar.gz: 7c48f1472a0f615416011887c55aefdc2d8a4b90
5
5
  SHA512:
6
- metadata.gz: bee1f8f0765b3a688b6efcd5ef57456017ae9db1004e217dab04df65cc33c700579e0e8084dc6d37f8487e44f7bb95f5e3d767c44f13fea73c71c1a59cf1e0ef
7
- data.tar.gz: 93158c02a95768823c7a25fc0eebe05a4cc201f3f6d93a99f4a3f528a32622a1552ee941368679bbf6e980ab5915aee21121a715b0ef517c9e15b3a16f1d2730
6
+ metadata.gz: 1c40c346d389f84f42504510270a31d18ec8395535ca2335172a7796367f31f4906bd12580fe36f4ae5aa5b59dd98ab33e7f1bdb0f787d4c5787794d493d46d8
7
+ data.tar.gz: 7bfa200fbf29e479259e39466929494fe36cf7e33e56cda96190c814d7996da676226eaa31685d64497603c0873f62b1d8f5033436114365399d630629e359d4
data/History.md CHANGED
@@ -1,6 +1,12 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 0.2.5 (Apr, 19, 2016)
5
+ =====
6
+
7
+ - Ignore blank tag value
8
+ - Improve the configuration verificaiton
9
+
4
10
  0.2.4 (Apr, 11, 2016)
5
11
  =====
6
12
 
@@ -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.2.4'
6
+ s.version = '0.2.5'
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}
@@ -47,18 +47,27 @@ DESC
47
47
 
48
48
  def configure(conf)
49
49
  super
50
- @influxdb = InfluxDB::Client.new @dbname, host: @host,
51
- port: @port,
52
- username: @user,
53
- password: @password,
54
- async: false,
55
- time_precision: @time_precision,
56
- use_ssl: @use_ssl,
57
- verify_ssl: @verify_ssl
58
50
  end
59
51
 
60
52
  def start
61
53
  super
54
+
55
+ $log.info "Connecting to database: #{@dbname}, host: #{@host}, port: #{@port}, username: #{@user}, password = #{@password}, use_ssl = #{@use_ssl}, verify_ssl = #{@verify_ssl}"
56
+
57
+ # ||= for testing.
58
+ @influxdb ||= InfluxDB::Client.new @dbname, host: @host,
59
+ port: @port,
60
+ username: @user,
61
+ password: @password,
62
+ async: false,
63
+ time_precision: @time_precision,
64
+ use_ssl: @use_ssl,
65
+ verify_ssl: @verify_ssl
66
+
67
+ existing_databases = @influxdb.list_databases.map { |x| x['name'] }
68
+ unless existing_databases.include? @dbname
69
+ raise Fluent::ConfigError, 'Database ' + @dbname + ' doesn\'t exist. Create it first, please. Existing databases: ' + existing_databases.join(',')
70
+ end
62
71
  end
63
72
 
64
73
  FORMATTED_RESULT_FOR_INVALID_RECORD = ''.freeze
@@ -88,7 +97,10 @@ DESC
88
97
  tags = {}
89
98
  record.each_pair do |k, v|
90
99
  if @tag_keys.include?(k)
91
- tags[k] = v
100
+ # If the tag value is not nil, empty, or a space, add the tag
101
+ if v.to_s.strip != ''
102
+ tags[k] = v
103
+ end
92
104
  else
93
105
  values[k] = v
94
106
  end
@@ -8,6 +8,10 @@ class InfluxdbOutputTest < Test::Unit::TestCase
8
8
  @points = []
9
9
  end
10
10
 
11
+ def list_databases
12
+ [{'name' => 'test'}]
13
+ end
14
+
11
15
  def write_points(points)
12
16
  @points += points
13
17
  end
@@ -35,9 +39,9 @@ class InfluxdbOutputTest < Test::Unit::TestCase
35
39
  def create_driver(conf=CONFIG, tag='test')
36
40
  Fluent::Test::BufferedOutputTestDriver.new(Fluent::InfluxdbOutput, tag) do
37
41
  attr_reader :influxdb
38
- def configure(conf)
39
- super
42
+ def start
40
43
  @influxdb = DummyInfluxDBClient.new()
44
+ super
41
45
  end
42
46
  end.configure(conf)
43
47
  end
@@ -92,6 +96,44 @@ class InfluxdbOutputTest < Test::Unit::TestCase
92
96
 
93
97
  end
94
98
 
99
+ def test_empty_tag_keys
100
+ config_with_tags = %Q(
101
+ #{CONFIG}
102
+
103
+ tag_keys ["b"]
104
+ )
105
+
106
+ driver = create_driver(config_with_tags, 'input.influxdb')
107
+
108
+ time = Time.parse("2011-01-02 13:14:15 UTC").to_i
109
+ driver.emit({'a' => 1, 'b' => ''}, time)
110
+ driver.emit({'a' => 2, 'b' => 1}, time)
111
+ driver.emit({'a' => 3, 'b' => ' '}, time)
112
+
113
+ data = driver.run
114
+
115
+ assert_equal([
116
+ {
117
+ :timestamp => time,
118
+ :series => 'input.influxdb',
119
+ :values => {'a' => 1},
120
+ :tags => {},
121
+ },
122
+ {
123
+ :timestamp => time,
124
+ :series => 'input.influxdb',
125
+ :values => {'a' => 2},
126
+ :tags => {'b' => 1},
127
+ },
128
+ {
129
+ :timestamp => time,
130
+ :series => 'input.influxdb',
131
+ :values => {'a' => 3},
132
+ :tags => {},
133
+ }
134
+ ], driver.instance.influxdb.points)
135
+ end
136
+
95
137
  def test_seq
96
138
  config = %[
97
139
  type influxdb
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.2.4
4
+ version: 0.2.5
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: 2016-04-11 00:00:00.000000000 Z
12
+ date: 2016-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd