fluent-plugin-output-solr 0.4.13 → 1.0.0

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: e7291cfc870c7f8be862adb23b42f1cf9072f697
4
- data.tar.gz: 64a33feafa219c2798fd1a3897d9122f24bd3b08
3
+ metadata.gz: 411fb997709bdee2ba7bdfacddd331dfacd82c0d
4
+ data.tar.gz: 481e8990f52260ad3d5ccabb03032ece66c7ad01
5
5
  SHA512:
6
- metadata.gz: f99cf5bfcb8dde3440bf65183594508923a20e09670e9ab78f122b64f53fa8efad0a82befa3cf95a26bf2e9438cbf8aa1bb3c681e4888e6b42fbbc4bc8844e54
7
- data.tar.gz: b847b79fa7cfcd2311ad515c4732971dd47065ef745c237431fe0bb1b11324480cc08b4c0648c2528e06d41114c3c03efe7653d7f80d6111fa2fff3ceb7a61f7
6
+ metadata.gz: e52a8fc04fd20bb336ddbcad6c7e12bf562180c52565736ba149334ba23afd61c8ceea989776d4ad2abb1d4fe8b37bcd0ac1bb4c989e5f251297e44b0328a776
7
+ data.tar.gz: 833671aa903c55254b03bf50ed4156f1e9b8a23e17027972a234991f14f2cc1176a6262777315aa4f7612ba7e296e9cff1b589cd01b625dac70a8a474bb24f69
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Fluent::Plugin::SolrOutput
2
2
 
3
- This is a [Fluentd](http://fluentd.org/) output plugin for send data to [Apache Solr](http://lucene.apache.org/solr/).
3
+ This is a [Fluentd](http://fluentd.org/) output plugin for send data to [Apache Solr](http://lucene.apache.org/solr/). It support [SolrCloud](https://cwiki.apache.org/confluence/display/solr/SolrCloud) not only Standalone Solr.
4
4
 
5
5
  ## Requirements
6
6
 
7
- | fluent-plugin-output-solr | fluentd | td-agent | ruby |
8
- | ------------------------- | --------------- | -------- | ------ |
9
- | 1.x.x | >= 0.14.0, < 2 | 3 | >= 2.1 |
10
- | 0.x.x | ~> 0.12.0 | 2 | >= 1.9 |
7
+ | fluent-plugin-output-solr | fluentd | td-agent | ruby |
8
+ | ------------------------- | --------------- | -------- | ------- |
9
+ | 1.x.x | \>= 0.14.0, < 2 | 3 | \>= 2.1 |
10
+ | 0.x.x | ~> 0.12.0 | 2 | \>= 1.9 |
11
11
 
12
12
  * The 1.x.x series is developed from this branch (master)
13
13
  * The 0.x.x series (compatible with fluentd v0.12, and td-agent 2) is developed on the [v0.x.x branch](https://github.com/mosuka/fluent-plugin-output-solr/tree/v0.x.x)
@@ -32,12 +32,12 @@ $ rake install
32
32
 
33
33
  ## Config parameters
34
34
 
35
- ### base_url
35
+ ### url
36
36
 
37
- The Solr base url (for example http://localhost:8983/solr).
37
+ The Solr server url (for example http://localhost:8983/solr/collection1).
38
38
 
39
39
  ```
40
- base_url http://localhost:8983/solr
40
+ url http://localhost:8983/solr/collection1
41
41
  ```
42
42
 
43
43
  ### zk_host
@@ -50,50 +50,42 @@ zk_host localhost:2181/solr
50
50
 
51
51
  ### collection
52
52
 
53
- The Solr collection/core name (default collection1).
53
+ The SolrCloud collection name (default collection1).
54
54
 
55
55
  ```
56
56
  collection collection1
57
57
  ```
58
58
 
59
- ### ignore_undefined_fields
60
-
61
- Ignore undefined fields in the Solr schema.xml.
62
-
63
- ```
64
- ignore_undefined_fields false
65
- ```
66
-
67
- ### tag_field
59
+ ### defined_fields
68
60
 
69
- A field name of fluentd tag in the Solr schema.xml (default tag).
61
+ The defined fields in the Solr schema.xml. If omitted, it will get fields via Solr Schema API.
70
62
 
71
63
  ```
72
- tag_field tag
64
+ defined_fields ["id", "title"]
73
65
  ```
74
66
 
75
- ### time_field
67
+ ### ignore_undefined_fields
76
68
 
77
- A field name of event timestamp in the Solr schema.xml (default time).
69
+ Ignore undefined fields in the Solr schema.xml.
78
70
 
79
71
  ```
80
- time_field time
72
+ ignore_undefined_fields false
81
73
  ```
82
74
 
83
- ### time_format
75
+ ### unique_key_field
84
76
 
85
- The format of the time field (default %FT%TZ).
77
+ A field name of unique key in the Solr schema.xml. If omitted, it will get unique key via Solr Schema API.
86
78
 
87
79
  ```
88
- time_format %FT%TZ
80
+ unique_key_field id
89
81
  ```
90
82
 
91
- ### millisecond
83
+ ### timestamp_field
92
84
 
93
- Output millisecond to Solr (default false).
85
+ A field name of event timestamp in the Solr schema.xml (default event_timestamp).
94
86
 
95
87
  ```
96
- millisecond false
88
+ timestamp_field event_timestamp
97
89
  ```
98
90
 
99
91
  ### flush_size
@@ -119,11 +111,8 @@ commit_with_flush true
119
111
  <match something.logs>
120
112
  @type solr
121
113
 
122
- # The Solr base url (for example http://localhost:8983/solr).
123
- base_url http://localhost:8983/solr
124
-
125
- # The Solr collection/core name (default collection1).
126
- collection collection1
114
+ # The Solr server url (for example http://localhost:8983/solr/collection1).
115
+ url http://localhost:8983/solr/collection1
127
116
  </match>
128
117
  ```
129
118
 
@@ -135,11 +124,83 @@ commit_with_flush true
135
124
  # The ZooKeeper connection string that SolrCloud refers to (for example localhost:2181/solr).
136
125
  zk_host localhost:2181/solr
137
126
 
138
- # The Solr collection/core name (default collection1).
127
+ # The SolrCloud collection name (default collection1).
139
128
  collection collection1
140
129
  </match>
141
130
  ```
142
131
 
132
+ ## Solr setup examples
133
+
134
+ ### How to setup Standalone Solr using data-driven schemaless mode.
135
+
136
+ 1.Download and install Solr
137
+
138
+ ```sh
139
+ $ mkdir $HOME/solr
140
+ $ cd $HOME/solr
141
+ $ wget https://archive.apache.org/dist/lucene/solr/5.4.0/solr-5.4.0.tgz
142
+ $ tar zxvf solr-5.4.0.tgz
143
+ $ cd solr-5.4.0
144
+ ```
145
+
146
+ 2.Start standalone Solr
147
+
148
+ ```sh
149
+ $ ./bin/solr start -p 8983 -s server/solr
150
+ ```
151
+
152
+ 3.Create core
153
+
154
+ ```sh
155
+ $ ./bin/solr create -c collection1 -d server/solr/configsets/data_driven_schema_configs -n collection1_configs
156
+ ```
157
+
158
+ ### How to setup SolrCloud using data-driven schemaless mode (shards=1 and replicationfactor=2).
159
+
160
+ 1.Download and install ZooKeeper
161
+
162
+ ```sh
163
+ $ mkdir $HOME/zookeeper
164
+ $ cd $HOME/zookeeper
165
+ $ wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
166
+ $ tar zxvf zookeeper-3.4.6.tar.gz
167
+ $ cd zookeeper-3.4.6
168
+ $ cp -p ./conf/zoo_sample.cfg ./conf/zoo.cfg
169
+ ```
170
+
171
+ 2.Start standalone ZooKeeper
172
+
173
+ ```sh
174
+ $ ./bin/zkServer.sh start
175
+ ```
176
+
177
+ 3.Download an install Solr
178
+
179
+ ```sh
180
+ $ mkdir $HOME/solr
181
+ $ cd $HOME/solr
182
+ $ wget https://archive.apache.org/dist/lucene/solr/5.4.0/solr-5.4.0.tgz
183
+ $ tar zxvf solr-5.4.0.tgz
184
+ $ cd solr-5.4.0
185
+ $ ./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd clear /solr
186
+ $ ./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd makepath /solr
187
+ $ cp -pr server/solr server/solr1
188
+ $ cp -pr server/solr server/solr2
189
+ ```
190
+
191
+ 4.Start SolrCloud
192
+
193
+ ```sh
194
+ $ ./bin/solr start -h localhost -p 8983 -z localhost:2181/solr -s server/solr1
195
+ $ ./bin/solr start -h localhost -p 8985 -z localhost:2181/solr -s server/solr2
196
+ ```
197
+
198
+ 5.Create collection
199
+
200
+ ```sh
201
+ $ ./bin/solr create -c collection1 -d server/solr1/configsets/data_driven_schema_configs -n collection1_configs -shards 1 -replicationFactor 2
202
+ ```
203
+
143
204
  ## Development
144
205
 
145
206
  After checking out the repo, run `bundle install` to install dependencies. Then, run `rake test` to run the tests.
@@ -3,28 +3,28 @@ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'fluent-plugin-output-solr'
7
- spec.version = '0.4.13'
8
- spec.authors = ['Minoru Osuka']
9
- spec.email = ['minoru.osuka@gmail.com']
6
+ spec.name = "fluent-plugin-output-solr"
7
+ spec.version = "1.0.0"
8
+ spec.authors = ["Minoru Osuka"]
9
+ spec.email = ["minoru.osuka@gmail.com"]
10
10
 
11
- spec.summary = 'Fluent output plugin for sending data to Apache Solr.'
12
- spec.description = 'Fluent output plugin for sending data to Apache Solr.'
13
- spec.homepage = 'https://github.com/mosuka/fluent-plugin-output-solr'
11
+ spec.summary = "Fluent output plugin for sending data to Apache Solr."
12
+ spec.description = "Fluent output plugin for sending data to Apache Solr. It support SolrCloud not only Standalone Solr."
13
+ spec.homepage = "https://github.com/mosuka/fluent-plugin-output-solr"
14
14
 
15
- spec.license = 'Apache-2.0'
15
+ spec.license = "Apache-2.0"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = 'exe'
18
+ spec.bindir = "exe"
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ['lib']
20
+ spec.require_paths = ["lib"]
21
21
 
22
- spec.add_runtime_dependency 'fluentd', '~> 0.12.0'
22
+ spec.add_runtime_dependency 'fluentd', ['>= 0.14.0', '< 2']
23
23
  spec.add_runtime_dependency 'rsolr-cloud', '~> 1.1.0'
24
- spec.add_runtime_dependency 'rsolr', '~> 1.1.2'
25
- spec.add_runtime_dependency 'zk', '~> 1.9.6'
24
+ spec.add_runtime_dependency 'rsolr', '~> 1.0.12'
25
+ spec.add_runtime_dependency 'zk', '~> 1.9.5'
26
26
 
27
- spec.add_development_dependency 'bundler', '~> 1.15.1'
27
+ spec.add_development_dependency 'bundler', '~> 1.14.6'
28
28
  spec.add_development_dependency 'rake', '~> 11.1.2'
29
29
  spec.add_development_dependency 'test-unit', '~> 3.1.5'
30
30
  spec.add_development_dependency 'minitest', '~> 5.8.3'
data/fluent.conf CHANGED
@@ -15,17 +15,11 @@
15
15
 
16
16
  <match messages>
17
17
  @type solr
18
- base_url http://localhost:8983/solr
19
- # zk_host localhost:2181/solr
18
+ # url http://localhost:8983/solr/collection1
19
+ zk_host localhost:2181/solr
20
20
  collection collection1
21
21
  ignore_undefined_fields false
22
- tag_field tag
23
- time_field time
24
- time_format %FT%TZ
25
- millisecond true
26
22
  flush_size 100
27
- commit_with_flush true
28
-
29
23
  buffer_type memory
30
24
  buffer_queue_limit 64m
31
25
  buffer_chunk_limit 8m
@@ -2,54 +2,47 @@ require 'securerandom'
2
2
  require 'rsolr'
3
3
  require 'zk'
4
4
  require 'rsolr/cloud'
5
+ require 'fluent/plugin/output'
5
6
 
6
- module Fluent
7
- class SolrOutput < BufferedOutput
7
+ module Fluent::Plugin
8
+ class SolrOutput < Output
8
9
  Fluent::Plugin.register_output('solr', self)
9
10
 
10
- DEFAULT_COLLECTION = 'collection1'
11
-
12
- DEFAULT_TAG_FIELD = 'tag'
13
-
14
- DEFAULT_TIME_FIELD = 'time'
15
- DEFAULT_TIME_FORMAT = '%FT%TZ'
16
- DEFAULT_MILLISECOND = false
11
+ helpers :inject, :compat_parameters
17
12
 
13
+ DEFAULT_COLLECTION = 'collection1'
18
14
  DEFAULT_IGNORE_UNDEFINED_FIELDS = false
19
-
15
+ DEFAULT_TAG_FIELD = 'tag'
16
+ DEFAULT_TIMESTAMP_FIELD = 'event_timestamp'
20
17
  DEFAULT_FLUSH_SIZE = 100
18
+ DEFAULT_BUFFER_TYPE = "memory"
21
19
  DEFAULT_COMMIT_WITH_FLUSH = true
22
20
 
23
21
  MODE_STANDALONE = 'Standalone'
24
22
  MODE_SOLRCLOUD = 'SolrCloud'
25
23
 
26
- include Fluent::SetTagKeyMixin
27
24
  config_set_default :include_tag_key, false
28
-
29
- include Fluent::SetTimeKeyMixin
30
25
  config_set_default :include_time_key, false
31
26
 
32
- config_param :base_url, :string, :default => nil,
33
- :desc => 'The Solr base url (for example http://localhost:8983/solr).'
27
+ config_param :url, :string, :default => nil,
28
+ :desc => 'The Solr server url (for example http://localhost:8983/solr/collection1).'
34
29
 
35
30
  config_param :zk_host, :string, :default => nil,
36
31
  :desc => 'The ZooKeeper connection string that SolrCloud refers to (for example localhost:2181/solr).'
37
-
38
32
  config_param :collection, :string, :default => DEFAULT_COLLECTION,
39
- :desc => 'The Solr collection/core name (default collection1).'
33
+ :desc => 'The SolrCloud collection name (default collection1).'
40
34
 
35
+ config_param :defined_fields, :array, :default => nil,
36
+ :desc => 'The defined fields in the Solr schema.xml. If omitted, it will get fields via Solr Schema API.'
41
37
  config_param :ignore_undefined_fields, :bool, :default => DEFAULT_IGNORE_UNDEFINED_FIELDS,
42
38
  :desc => 'Ignore undefined fields in the Solr schema.xml.'
43
39
 
40
+ config_param :unique_key_field, :string, :default => nil,
41
+ :desc => 'A field name of unique key in the Solr schema.xml. If omitted, it will get unique key via Solr Schema API.'
44
42
  config_param :tag_field, :string, :default => DEFAULT_TAG_FIELD,
45
- :desc => 'A field name of fluentd tag in the Solr schema.xml (default tag).'
46
-
47
- config_param :time_field, :string, :default => DEFAULT_TIME_FIELD,
48
- :desc => 'A field name of event timestamp in the Solr schema.xml (default time).'
49
- config_param :time_format, :string, :default => DEFAULT_TIME_FORMAT,
50
- :desc => 'The format of the time field (default %d/%b/%Y:%H:%M:%S %z).'
51
- config_param :millisecond, :bool, :default => DEFAULT_MILLISECOND,
52
- :desc => 'Output millisecond to Solr (default false).'
43
+ :desc => 'A field name of fluentd tag in the Solr schema.xml (default event_timestamp).'
44
+ config_param :timestamp_field, :string, :default => DEFAULT_TIMESTAMP_FIELD,
45
+ :desc => 'A field name of event timestamp in the Solr schema.xml (default event_timestamp).'
53
46
 
54
47
  config_param :flush_size, :integer, :default => DEFAULT_FLUSH_SIZE,
55
48
  :desc => 'A number of events to queue up before writing to Solr (default 100).'
@@ -57,11 +50,17 @@ module Fluent
57
50
  config_param :commit_with_flush, :bool, :default => DEFAULT_COMMIT_WITH_FLUSH,
58
51
  :desc => 'Send commit command to Solr with flush (default true).'
59
52
 
53
+ config_section :buffer do
54
+ config_set_default :@type, DEFAULT_BUFFER_TYPE
55
+ config_set_default :chunk_keys, ['tag']
56
+ end
57
+
60
58
  def initialize
61
59
  super
62
60
  end
63
61
 
64
62
  def configure(conf)
63
+ compat_parameters_convert(conf, :inject)
65
64
  super
66
65
  end
67
66
 
@@ -69,7 +68,7 @@ module Fluent
69
68
  super
70
69
 
71
70
  @mode = nil
72
- if ! @base_url.nil? then
71
+ if ! @url.nil? then
73
72
  @mode = MODE_STANDALONE
74
73
  elsif ! @zk_host.nil?
75
74
  @mode = MODE_SOLRCLOUD
@@ -79,7 +78,7 @@ module Fluent
79
78
  @zk = nil
80
79
 
81
80
  if @mode == MODE_STANDALONE then
82
- @solr = RSolr.connect :url => @base_url.end_with?('/') ? @base_url + @collection : @base_url + '/' + @collection
81
+ @solr = RSolr.connect :url => @url
83
82
  elsif @mode == MODE_SOLRCLOUD then
84
83
  @zk = ZK.new(@zk_host)
85
84
  cloud_connection = RSolr::Cloud::Connection.new(@zk)
@@ -96,120 +95,113 @@ module Fluent
96
95
  end
97
96
 
98
97
  def format(tag, time, record)
99
- [tag, time, record].to_msgpack
98
+ [time, record].to_msgpack
99
+ end
100
+
101
+ def formatted_to_msgpack_binary
102
+ true
103
+ end
104
+
105
+ def multi_workers_ready?
106
+ true
100
107
  end
101
108
 
102
109
  def write(chunk)
103
110
  documents = []
104
111
 
105
- # Get fields from Solr
106
- fields = get_fields
112
+ @fields = @defined_fields.nil? ? get_fields : @defined_fields
113
+ @unique_key = @unique_key_field.nil? ? get_unique_key : @unique_key_field
114
+ tag = chunk.metadata.tag
115
+ chunk.msgpack_each do |time, record|
116
+ record = inject_values_to_record(tag, time, record)
107
117
 
108
- # Get unique key field from Solr
109
- unique_key = get_unique_key
110
-
111
- chunk.msgpack_each do |tag, time, record|
112
- # Set unique key and value
113
- unless record.has_key?(unique_key) then
114
- record.merge!({unique_key => SecureRandom.uuid})
118
+ unless record.has_key?(@unique_key) then
119
+ record.merge!({@unique_key => SecureRandom.uuid})
115
120
  end
116
121
 
117
- # Set Fluentd tag to Solr tag field
118
122
  unless record.has_key?(@tag_field) then
119
123
  record.merge!({@tag_field => tag})
120
124
  end
121
125
 
122
- # Set time
123
- tmp_time = Time.at(time).utc
124
- if record.has_key?(@time_field) then
125
- # Parsing the time field in the record by the specified format.
126
+ if record.has_key?(@timestamp_field) then
126
127
  begin
127
- tmp_time = Time.strptime(record[@time_field], @time_format).utc
128
- rescue Exception => e
129
- log.warn "An error occurred in parsing the time field: #{e.message}"
128
+ event_timestamp_dt = DateTime.strptime(record[@timestamp_field], "%d/%b/%Y:%H:%M:%S %z").to_s
129
+ record.merge!({@timestamp_field => Time.parse(event_timestamp_dt.to_s).utc.strftime('%FT%TZ')})
130
+ rescue
131
+ record.merge!({@timestamp_field => Time.at(time).utc.strftime('%FT%TZ')})
130
132
  end
131
- end
132
- if @millisecond then
133
- record.merge!({@time_field => '%s.%03dZ' % [tmp_time.strftime('%FT%T'), tmp_time.usec / 1000.0]})
134
133
  else
135
- record.merge!({@time_field => tmp_time.strftime('%FT%TZ')})
134
+ record.merge!({@timestamp_field => Time.at(time).utc.strftime('%FT%TZ')})
136
135
  end
137
136
 
138
- # Ignore undefined fields
139
137
  if @ignore_undefined_fields then
140
138
  record.each_key do |key|
141
- unless fields.include?(key) then
139
+ unless @fields.include?(key) then
142
140
  record.delete(key)
143
141
  end
144
142
  end
145
143
  end
146
144
 
147
- # Add record to documents
148
145
  documents << record
149
146
 
150
- # Update when flash size is reached
151
147
  if documents.count >= @flush_size
152
148
  update documents
153
149
  documents.clear
154
150
  end
155
151
  end
156
152
 
157
- # Update remaining documents
158
153
  update documents unless documents.empty?
159
154
  end
160
155
 
161
156
  def update(documents)
162
- begin
163
- if @mode == MODE_STANDALONE then
164
- @solr.add documents, :params => {:commit => @commit_with_flush}
165
- elsif @mode == MODE_SOLRCLOUD then
166
- @solr.add documents, collection: @collection, :params => {:commit => @commit_with_flush}
167
- end
168
- log.debug "Sent #{documents.count} document(s) to Solr"
169
- rescue Exception
170
- log.warn "An error occurred while sending #{documents.count} document(s) to Solr"
157
+ if @mode == MODE_STANDALONE then
158
+ @solr.add documents, :params => {:commit => @commit_with_flush}
159
+ log.debug "Added %d document(s) to Solr" % documents.count
160
+ elsif @mode == MODE_SOLRCLOUD then
161
+ @solr.add documents, collection: @collection, :params => {:commit => @commit_with_flush}
162
+ log.debug "Update: Added %d document(s) to Solr" % documents.count
171
163
  end
164
+ rescue Exception => e
165
+ log.warn "Update: An error occurred while indexing: #{e.message}"
172
166
  end
173
167
 
174
168
  def get_unique_key
175
- unique_key = 'id'
176
-
177
- begin
178
- response = nil
179
- if @mode == MODE_STANDALONE then
180
- response = @solr.get 'schema/uniquekey'
181
- elsif @mode == MODE_SOLRCLOUD then
182
- response = @solr.get 'schema/uniquekey', collection: @collection
183
- end
184
- unique_key = response['uniqueKey']
185
- log.debug "Unique key: #{unique_key}"
186
- rescue Exception
187
- log.warn 'An error occurred while getting unique key'
169
+ response = nil
170
+
171
+ if @mode == MODE_STANDALONE then
172
+ response = @solr.get 'schema/uniquekey'
173
+ elsif @mode == MODE_SOLRCLOUD then
174
+ response = @solr.get 'schema/uniquekey', collection: @collection
188
175
  end
189
176
 
177
+ unique_key = response['uniqueKey']
178
+ log.debug "Unique key: #{unique_key}"
179
+
190
180
  return unique_key
181
+
182
+ rescue Exception => e
183
+ log.warn "Unique key: #{e.message}"
191
184
  end
192
185
 
193
186
  def get_fields
194
- fields = []
187
+ response = nil
195
188
 
196
- begin
197
- response = nil
189
+ if @mode == MODE_STANDALONE then
190
+ response = @solr.get 'schema/fields'
191
+ elsif @mode == MODE_SOLRCLOUD then
192
+ response = @solr.get 'schema/fields', collection: @collection
193
+ end
198
194
 
199
- if @mode == MODE_STANDALONE then
200
- response = @solr.get 'schema/fields'
201
- elsif @mode == MODE_SOLRCLOUD then
202
- response = @solr.get 'schema/fields', collection: @collection
203
- end
204
- response['fields'].each do |field|
205
- fields.push(field['name'])
206
- end
207
- log.debug "Fields: #{fields}"
208
- rescue Exception
209
- log.warn 'An error occurred while getting fields'
195
+ fields = []
196
+ response['fields'].each do |field|
197
+ fields.push(field['name'])
210
198
  end
199
+ log.debug "Fields: #{fields}"
211
200
 
212
201
  return fields
202
+
203
+ rescue Exception => e
204
+ log.warn "Fields: #{e.message}"
213
205
  end
214
206
  end
215
207
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-output-solr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.13
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minoru Osuka
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-25 00:00:00.000000000 Z
11
+ date: 2017-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.14.0
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: 0.12.0
22
+ version: '2'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.14.0
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 0.12.0
32
+ version: '2'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rsolr-cloud
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +50,42 @@ dependencies:
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: 1.1.2
53
+ version: 1.0.12
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: 1.1.2
60
+ version: 1.0.12
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: zk
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 1.9.6
67
+ version: 1.9.5
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 1.9.6
74
+ version: 1.9.5
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: bundler
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 1.15.1
81
+ version: 1.14.6
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: 1.15.1
88
+ version: 1.14.6
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: rake
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -150,7 +156,8 @@ dependencies:
150
156
  - - "~>"
151
157
  - !ruby/object:Gem::Version
152
158
  version: 1.1.8
153
- description: Fluent output plugin for sending data to Apache Solr.
159
+ description: Fluent output plugin for sending data to Apache Solr. It support SolrCloud
160
+ not only Standalone Solr.
154
161
  email:
155
162
  - minoru.osuka@gmail.com
156
163
  executables: []