fluent-plugin-out-solr 0.0.4 → 0.0.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: 9fba370cfa9aa095c4d62a31298fb5986d7e82c3
4
- data.tar.gz: bc3e47a0617809a5ccee18e9811eb3832eef63f5
3
+ metadata.gz: 084cfbcff140583951af85f95686ce9b1cce218a
4
+ data.tar.gz: b76871e6609e4b256ae5a7c2e1657bf5a29c894f
5
5
  SHA512:
6
- metadata.gz: 58b5f2a164b2851f917843e29b70db8fc91d160c887441bb66969011a64727da40b93809d47c8620d32153fbb319a9b807cff48b0affbe3fc05172fd25576e66
7
- data.tar.gz: 982239392497f4e9a88e9bfdc5f93ef404fe58c4b7d7e215220c3ba78996e4f02dfcb6f891d3e5daaf10bcfa174d9d159903ccca89a361d9d18d8a721bef2157
6
+ metadata.gz: f1bb5193a19f3689a040114fa4d515ad19f5b7cbc3779139632bbeadb57355b5b1db604c9d192d52131904ad30f3c63aa09ffa13722fee37498da4a8ba6ca2f8
7
+ data.tar.gz: 68b6b924c039f2b5c77f6254c5ee2c60907265a6974141b4f7d14cf1a1c2e205f724b88d7eb73aeb2530d1b5780ccf972cd767c9bd78dfe8fa0b039af3c93e41
data/README.md CHANGED
@@ -30,7 +30,8 @@ Notice: no relationship with [btigit/fluent-plugin-solr](https://github.com/btig
30
30
  include_tag_key true
31
31
  tag_key tag
32
32
  time_field timestamp
33
- utc # if you do not want to use localtime
33
+ # utc # if you do not want to use localtime
34
+ # commit true # if you want to commit explicitly
34
35
 
35
36
  flush_interval 3s
36
37
  </match>
@@ -58,7 +59,8 @@ See: [Time Sliced Plugin Overview - Buffer Plugin Overview | Fluentd](http://doc
58
59
  include_tag_key true
59
60
  tag_key tag
60
61
  time_field timestamp
61
- utc # if you do not want to use localtime
62
+ # utc # if you do not want to use localtime
63
+ # commit true # if you want to commit explicitly
62
64
 
63
65
  flush_interval 3s
64
66
  </match>
@@ -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-out-solr'
6
- s.version = '0.0.4'
6
+ s.version = '0.0.5'
7
7
  s.authors = ['diogo', 'pitr', 'haruyama']
8
8
  s.email = ['team@uken.com', 'haruyama@unixuser.org']
9
9
  s.description = %q{Solr output plugin for Fluent event collector}
@@ -6,16 +6,11 @@ class Fluent::SolrOutput < Fluent::BufferedOutput
6
6
 
7
7
  require 'fluent/plugin/solr_util'
8
8
  include SolrUtil
9
+ require 'fluent/plugin/solr_config_common'
10
+ include SolrConfigCommon
9
11
 
10
- config_param :host, :string, default: 'localhost'
11
- config_param :port, :integer, default: 8983
12
- config_param :core, :string, default: 'collection1'
13
- config_param :time_field, :string, default: 'timestamp'
12
+ config_param :core, :string, default: 'collection1'
14
13
 
15
- include Fluent::SetTagKeyMixin
16
- config_set_default :include_tag_key, false
17
-
18
- attr_accessor :localtime
19
14
  def initialize
20
15
  require 'net/http'
21
16
  require 'uri'
@@ -6,19 +6,13 @@ class Fluent::SolrTimeSlicedOutput < Fluent::TimeSlicedOutput
6
6
 
7
7
  require 'fluent/plugin/solr_util'
8
8
  include SolrUtil
9
+ require 'fluent/plugin/solr_config_common'
10
+ include SolrConfigCommon
9
11
 
10
12
  config_set_default :buffer_type, 'memory'
11
13
  config_set_default :time_slice_format, '%Y%m%d'
12
14
 
13
- config_param :host, :string, default: 'localhost'
14
- config_param :port, :integer, default: 8983
15
- config_param :core, :string, default: 'log-%Y%m%d'
16
- config_param :time_field, :string, default: 'timestamp'
17
-
18
- include Fluent::SetTagKeyMixin
19
- config_set_default :include_tag_key, false
20
-
21
- attr_accessor :localtime
15
+ config_param :core, :string, default: 'log-%Y%m%d'
22
16
 
23
17
  def initialize
24
18
  require 'net/http'
@@ -0,0 +1,17 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'fluent/config'
4
+
5
+ # Solr Config Common
6
+ module SolrConfigCommon
7
+ include Fluent::Configurable
8
+ config_param :host, :string, default: 'localhost'
9
+ config_param :port, :integer, default: 8983
10
+ config_param :time_field, :string, default: 'timestamp'
11
+ config_param :commit, :bool, default: false
12
+
13
+ include Fluent::SetTagKeyMixin
14
+ config_set_default :include_tag_key, false
15
+
16
+ attr_accessor :localtime
17
+ end
@@ -1,5 +1,7 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ require 'uri'
4
+
3
5
  # Solr utility
4
6
  module SolrUtil
5
7
  def update_core(chunk, core)
@@ -14,7 +16,9 @@ module SolrUtil
14
16
  end
15
17
 
16
18
  http = Net::HTTP.new(@host, @port.to_i)
17
- request = Net::HTTP::Post.new('/solr/' + URI.escape(core) + '/update', 'content-type' => 'application/json; charset=utf-8')
19
+ url = '/solr/' + URI.escape(core) + '/update'
20
+ url += '?commit=true' if @commit
21
+ request = Net::HTTP::Post.new(url, 'content-type' => 'application/json; charset=utf-8')
18
22
  request.body = Yajl::Encoder.encode(documents)
19
23
  http.request(request).value
20
24
  end
@@ -123,4 +123,12 @@ class SolrOutput < Test::Unit::TestCase
123
123
  driver.run
124
124
  end
125
125
  end
126
+
127
+ def test_writes_with_commit
128
+ driver.configure("commit true\n")
129
+ solr_request = stub_solr('http://localhost:8983/solr/collection1/update?commit=true')
130
+ driver.emit(sample_record)
131
+ driver.run
132
+ assert_requested(solr_request)
133
+ end
126
134
  end
@@ -67,7 +67,7 @@ class SolrTimeSlicedOutputTest < Test::Unit::TestCase
67
67
 
68
68
  def test_wrties_with_proper_content_type
69
69
  stub_solr
70
- driver.emit(sample_record)
70
+ driver.emit(sample_record, time)
71
71
  driver.run
72
72
  assert_equal('application/json; charset=utf-8', @content_type)
73
73
  end
@@ -124,7 +124,7 @@ class SolrTimeSlicedOutputTest < Test::Unit::TestCase
124
124
 
125
125
  def test_doesnt_add_tag_key_by_default
126
126
  stub_solr
127
- driver.emit(sample_record)
127
+ driver.emit(sample_record, time)
128
128
  driver.run
129
129
  assert_nil(@index_cmds[0]['tag'])
130
130
  end
@@ -148,6 +148,16 @@ class SolrTimeSlicedOutputTest < Test::Unit::TestCase
148
148
  assert_equal('2013-12-21T22:30:00Z', @index_cmds[0]['timestamp'])
149
149
  end
150
150
 
151
+ def test_utc2
152
+ driver.configure("utc\n")
153
+ stub_solr2
154
+ ENV['TZ'] = 'Europe/Berlin'
155
+ driver.emit(sample_record, Time.local(2013, 12, 22, 7, 30, 0).to_i)
156
+ ENV['TZ'] = nil
157
+ driver.run
158
+ assert_equal('2013-12-22T06:30:00Z', @index_cmds2[0]['timestamp'])
159
+ end
160
+
151
161
  def test_emit_records_on_different_days
152
162
  stub_solr
153
163
  stub_solr2
@@ -165,4 +175,12 @@ class SolrTimeSlicedOutputTest < Test::Unit::TestCase
165
175
  driver.run
166
176
  end
167
177
  end
178
+
179
+ def test_writes_with_commit
180
+ driver.configure("commit true\n")
181
+ solr_request = stub_solr('http://localhost:8983/solr/log-20131221/update?commit=true')
182
+ driver.emit(sample_record, time)
183
+ driver.run
184
+ assert_requested(solr_request)
185
+ end
168
186
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-out-solr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - diogo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-12-21 00:00:00.000000000 Z
13
+ date: 2014-01-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: fluentd
@@ -70,6 +70,7 @@ files:
70
70
  - fluent-plugin-out-solr.gemspec
71
71
  - lib/fluent/plugin/out_solr.rb
72
72
  - lib/fluent/plugin/out_solr_time_sliced.rb
73
+ - lib/fluent/plugin/solr_config_common.rb
73
74
  - lib/fluent/plugin/solr_util.rb
74
75
  - test/helper.rb
75
76
  - test/plugin/.rubocop.yml
@@ -95,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
96
  version: '0'
96
97
  requirements: []
97
98
  rubyforge_project:
98
- rubygems_version: 2.1.11
99
+ rubygems_version: 2.2.0
99
100
  signing_key:
100
101
  specification_version: 4
101
102
  summary: Solr output plugin for Fluent event collector