fluent-plugin-output-solr 1.0.1 → 1.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1919ebd408f73f5cf3ccd44214586fc15ac91bf1
4
- data.tar.gz: a8f9e2f80d397a5f0578e407bb8a23027bcc25ae
3
+ metadata.gz: 83c3ee7ee757f55da3c9605b0c292d31cb41ca97
4
+ data.tar.gz: f01b0a4f320facb257e530772b5798ce38aa1c63
5
5
  SHA512:
6
- metadata.gz: ab70f58bc5431a57e151e50ccfad286da2f4df3b911359c83f427a1b5806b39ec9759789c069151a560714eb643ee21fe17c34081bba838f06c594e32882338d
7
- data.tar.gz: 49327b34e288c8f42f4d0aa93558b56c99b93b59419aa9fa1c31ee540544ed37d2e24423f3d90020941ef9d0ee56c358f3959073d8fc6bf6523581781ef9c6fb
6
+ metadata.gz: 5e957af523348177ef465b00f33762e9e566229afc980bf430f7aa59b6f82a1c72d027043077e204fd7b37b2984719eba055b2f7c2457795662570272a92707f
7
+ data.tar.gz: 820719027d5dfe43a39d8ed9771a3d069b15ed151d316db2172df5c1c8840798ee10de3be569b85620dc6e55922b06e7cfc7bf5e1cae4bfd2850fb9b6f2e1109
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 sending data to [Apache Solr](http://lucene.apache.org/solr/). It supports standalone Solr and [SolrCloud](https://cwiki.apache.org/confluence/display/solr/SolrCloud).
3
+ This is a [Fluentd](http://fluentd.org/) output plugin for send data to [Apache Solr](http://lucene.apache.org/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
- ### url
35
+ ### base_url
36
36
 
37
- The Solr server url (for example http://localhost:8983/solr/collection1).
37
+ The Solr base url (for example http://localhost:8983/solr).
38
38
 
39
39
  ```
40
- url http://localhost:8983/solr/collection1
40
+ base_url http://localhost:8983/solr
41
41
  ```
42
42
 
43
43
  ### zk_host
@@ -50,50 +50,50 @@ zk_host localhost:2181/solr
50
50
 
51
51
  ### collection
52
52
 
53
- The SolrCloud collection name (default collection1).
53
+ The Solr collection/core name (default collection1).
54
54
 
55
55
  ```
56
56
  collection collection1
57
57
  ```
58
58
 
59
- ### defined_fields
59
+ ### ignore_undefined_fields
60
60
 
61
- The defined fields in the Solr schema.xml. If omitted, it will get fields via Solr Schema API.
61
+ Ignore undefined fields in the Solr schema.xml.
62
62
 
63
63
  ```
64
- defined_fields ["id", "title"]
64
+ ignore_undefined_fields false
65
65
  ```
66
66
 
67
- ### ignore_undefined_fields
67
+ ### tag_field
68
68
 
69
- Ignore undefined fields in the Solr schema.xml.
69
+ A field name of fluentd tag in the Solr schema.xml (default tag).
70
70
 
71
71
  ```
72
- ignore_undefined_fields false
72
+ tag_field tag
73
73
  ```
74
74
 
75
- ### string_field_value_max_length
75
+ ### time_field
76
76
 
77
- A string field value max length. If set -1, it means unlimited (default -1). However, there is a limit of Solr.
77
+ A field name of event timestamp in the Solr schema.xml (default time).
78
78
 
79
79
  ```
80
- string_field_value_max_length -1
80
+ time_field time
81
81
  ```
82
82
 
83
- ### unique_key_field
83
+ ### time_format
84
84
 
85
- A field name of unique key in the Solr schema.xml. If omitted, it will get unique key via Solr Schema API.
85
+ The format of the time field (default %FT%TZ).
86
86
 
87
87
  ```
88
- unique_key_field id
88
+ time_format %FT%TZ
89
89
  ```
90
90
 
91
- ### timestamp_field
91
+ ### millisecond
92
92
 
93
- A field name of event timestamp in the Solr schema.xml (default time).
93
+ Output millisecond to Solr (default false).
94
94
 
95
95
  ```
96
- timestamp_field time
96
+ millisecond false
97
97
  ```
98
98
 
99
99
  ### flush_size
@@ -119,8 +119,11 @@ commit_with_flush true
119
119
  <match something.logs>
120
120
  @type solr
121
121
 
122
- # The Solr server url (for example http://localhost:8983/solr/collection1).
123
- url http://localhost:8983/solr/collection1
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
124
127
  </match>
125
128
  ```
126
129
 
@@ -132,83 +135,11 @@ commit_with_flush true
132
135
  # The ZooKeeper connection string that SolrCloud refers to (for example localhost:2181/solr).
133
136
  zk_host localhost:2181/solr
134
137
 
135
- # The SolrCloud collection name (default collection1).
138
+ # The Solr collection/core name (default collection1).
136
139
  collection collection1
137
140
  </match>
138
141
  ```
139
142
 
140
- ## Solr setup examples
141
-
142
- ### How to setup Standalone Solr using data-driven schemaless mode.
143
-
144
- 1.Download and install Solr
145
-
146
- ```sh
147
- $ mkdir $HOME/solr
148
- $ cd $HOME/solr
149
- $ wget https://archive.apache.org/dist/lucene/solr/5.4.0/solr-5.4.0.tgz
150
- $ tar zxvf solr-5.4.0.tgz
151
- $ cd solr-5.4.0
152
- ```
153
-
154
- 2.Start standalone Solr
155
-
156
- ```sh
157
- $ ./bin/solr start -p 8983 -s server/solr
158
- ```
159
-
160
- 3.Create core
161
-
162
- ```sh
163
- $ ./bin/solr create -c collection1 -d server/solr/configsets/data_driven_schema_configs -n collection1_configs
164
- ```
165
-
166
- ### How to setup SolrCloud using data-driven schemaless mode (shards=1 and replicationfactor=2).
167
-
168
- 1.Download and install ZooKeeper
169
-
170
- ```sh
171
- $ mkdir $HOME/zookeeper
172
- $ cd $HOME/zookeeper
173
- $ wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
174
- $ tar zxvf zookeeper-3.4.6.tar.gz
175
- $ cd zookeeper-3.4.6
176
- $ cp -p ./conf/zoo_sample.cfg ./conf/zoo.cfg
177
- ```
178
-
179
- 2.Start standalone ZooKeeper
180
-
181
- ```sh
182
- $ ./bin/zkServer.sh start
183
- ```
184
-
185
- 3.Download an install Solr
186
-
187
- ```sh
188
- $ mkdir $HOME/solr
189
- $ cd $HOME/solr
190
- $ wget https://archive.apache.org/dist/lucene/solr/5.4.0/solr-5.4.0.tgz
191
- $ tar zxvf solr-5.4.0.tgz
192
- $ cd solr-5.4.0
193
- $ ./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd clear /solr
194
- $ ./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd makepath /solr
195
- $ cp -pr server/solr server/solr1
196
- $ cp -pr server/solr server/solr2
197
- ```
198
-
199
- 4.Start SolrCloud
200
-
201
- ```sh
202
- $ ./bin/solr start -h localhost -p 8983 -z localhost:2181/solr -s server/solr1
203
- $ ./bin/solr start -h localhost -p 8985 -z localhost:2181/solr -s server/solr2
204
- ```
205
-
206
- 5.Create collection
207
-
208
- ```sh
209
- $ ./bin/solr create -c collection1 -d server/solr1/configsets/data_driven_schema_configs -n collection1_configs -shards 1 -replicationFactor 2
210
- ```
211
-
212
143
  ## Development
213
144
 
214
145
  After checking out the repo, run `bundle install` to install dependencies. Then, run `rake test` to run the tests.
@@ -3,21 +3,21 @@ 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 = "1.0.1"
8
- spec.authors = ["Minoru Osuka"]
9
- spec.email = ["minoru.osuka@gmail.com"]
6
+ spec.name = 'fluent-plugin-output-solr'
7
+ spec.version = '1.0.2'
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. It supports standalone Solr and SolrCloud."
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.'
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
22
  spec.add_runtime_dependency 'fluentd', ['>= 0.14.0', '< 2']
23
23
  spec.add_runtime_dependency 'rsolr-cloud', '~> 1.1.0'
data/fluent.conf CHANGED
@@ -15,11 +15,17 @@
15
15
 
16
16
  <match messages>
17
17
  @type solr
18
- # url http://localhost:8983/solr/collection1
19
- zk_host localhost:2181/solr
18
+ base_url http://localhost:8983/solr
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
22
26
  flush_size 100
27
+ commit_with_flush true
28
+
23
29
  buffer_type memory
24
30
  buffer_queue_limit 64m
25
31
  buffer_chunk_limit 8m
@@ -11,12 +11,17 @@ module Fluent::Plugin
11
11
  helpers :inject, :compat_parameters
12
12
 
13
13
  DEFAULT_COLLECTION = 'collection1'
14
- DEFAULT_IGNORE_UNDEFINED_FIELDS = false
15
- DEFAULT_STRING_FIELD_VALUE_MAX_LENGTH = -1
14
+
16
15
  DEFAULT_TAG_FIELD = 'tag'
17
- DEFAULT_TIMESTAMP_FIELD = 'time'
16
+
17
+ DEFAULT_TIME_FIELD = 'time'
18
+ DEFAULT_TIME_FORMAT = '%FT%TZ'
19
+ DEFAULT_MILLISECOND = false
20
+
21
+ DEFAULT_IGNORE_UNDEFINED_FIELDS = false
22
+
18
23
  DEFAULT_FLUSH_SIZE = 100
19
- DEFAULT_BUFFER_TYPE = "memory"
24
+ DEFAULT_BUFFER_TYPE = 'memory'
20
25
  DEFAULT_COMMIT_WITH_FLUSH = true
21
26
 
22
27
  MODE_STANDALONE = 'Standalone'
@@ -25,27 +30,27 @@ module Fluent::Plugin
25
30
  config_set_default :include_tag_key, false
26
31
  config_set_default :include_time_key, false
27
32
 
28
- config_param :url, :string, :default => nil,
29
- :desc => 'The Solr server url (for example http://localhost:8983/solr/collection1).'
33
+ config_param :base_url, :string, :default => nil,
34
+ :desc => 'The Solr base url (for example http://localhost:8983/solr).'
30
35
 
31
36
  config_param :zk_host, :string, :default => nil,
32
37
  :desc => 'The ZooKeeper connection string that SolrCloud refers to (for example localhost:2181/solr).'
38
+
33
39
  config_param :collection, :string, :default => DEFAULT_COLLECTION,
34
- :desc => 'The SolrCloud collection name (default collection1).'
40
+ :desc => 'The Solr collection/core name (default collection1).'
35
41
 
36
- config_param :defined_fields, :array, :default => nil,
37
- :desc => 'The defined fields in the Solr schema.xml. If omitted, it will get fields via Solr Schema API.'
38
42
  config_param :ignore_undefined_fields, :bool, :default => DEFAULT_IGNORE_UNDEFINED_FIELDS,
39
43
  :desc => 'Ignore undefined fields in the Solr schema.xml.'
40
- config_param :string_field_value_max_length, :integer, :default => DEFAULT_STRING_FIELD_VALUE_MAX_LENGTH,
41
- :desc => 'Field value max length.'
42
44
 
43
- config_param :unique_key_field, :string, :default => nil,
44
- :desc => 'A field name of unique key in the Solr schema.xml. If omitted, it will get unique key via Solr Schema API.'
45
45
  config_param :tag_field, :string, :default => DEFAULT_TAG_FIELD,
46
46
  :desc => 'A field name of fluentd tag in the Solr schema.xml (default time).'
47
- config_param :timestamp_field, :string, :default => DEFAULT_TIMESTAMP_FIELD,
47
+
48
+ config_param :time_field, :string, :default => DEFAULT_TIME_FIELD,
48
49
  :desc => 'A field name of event timestamp in the Solr schema.xml (default time).'
50
+ config_param :time_format, :string, :default => DEFAULT_TIME_FORMAT,
51
+ :desc => 'The format of the time field (default %d/%b/%Y:%H:%M:%S %z).'
52
+ config_param :millisecond, :bool, :default => DEFAULT_MILLISECOND,
53
+ :desc => 'Output millisecond to Solr (default false).'
49
54
 
50
55
  config_param :flush_size, :integer, :default => DEFAULT_FLUSH_SIZE,
51
56
  :desc => 'A number of events to queue up before writing to Solr (default 100).'
@@ -72,7 +77,7 @@ module Fluent::Plugin
72
77
  super
73
78
 
74
79
  @mode = nil
75
- if ! @url.nil? then
80
+ if ! @base_url.nil? then
76
81
  @mode = MODE_STANDALONE
77
82
  elsif ! @zk_host.nil?
78
83
  @mode = MODE_SOLRCLOUD
@@ -82,7 +87,7 @@ module Fluent::Plugin
82
87
  @zk = nil
83
88
 
84
89
  if @mode == MODE_STANDALONE then
85
- @solr = RSolr.connect :url => @url
90
+ @solr = RSolr.connect :url => @base_url.end_with?('/') ? @base_url + @collection : @base_url + '/' + @collection
86
91
  elsif @mode == MODE_SOLRCLOUD then
87
92
  @zk = ZK.new(@zk_host)
88
93
  cloud_connection = RSolr::Cloud::Connection.new(@zk)
@@ -113,123 +118,119 @@ module Fluent::Plugin
113
118
  def write(chunk)
114
119
  documents = []
115
120
 
116
- @fields = @defined_fields.nil? ? get_fields : @defined_fields
117
- @unique_key = @unique_key_field.nil? ? get_unique_key : @unique_key_field
121
+ # Get fields from Solr
122
+ fields = get_fields
123
+
124
+ # Get unique key field from Solr
125
+ unique_key = get_unique_key
126
+
127
+ # Get fluentd tag
118
128
  tag = chunk.metadata.tag
129
+
119
130
  chunk.msgpack_each do |time, record|
120
131
  record = inject_values_to_record(tag, time, record)
121
132
 
122
- unless record.has_key?(@unique_key) then
123
- record.merge!({@unique_key => SecureRandom.uuid})
133
+ # Set unique key and value
134
+ unless record.has_key?(unique_key) then
135
+ record.merge!({unique_key => SecureRandom.uuid})
124
136
  end
125
137
 
138
+ # Set Fluentd tag to Solr tag field
126
139
  unless record.has_key?(@tag_field) then
127
140
  record.merge!({@tag_field => tag})
128
141
  end
129
142
 
130
- if record.has_key?(@timestamp_field) then
143
+ # Set time
144
+ tmp_time = Time.at(time).utc
145
+ if record.has_key?(@time_field) then
146
+ # Parsing the time field in the record by the specified format.
131
147
  begin
132
- event_timestamp_dt = DateTime.strptime(record[@timestamp_field], "%d/%b/%Y:%H:%M:%S %z").to_s
133
- record.merge!({@timestamp_field => Time.parse(event_timestamp_dt.to_s).utc.strftime('%FT%TZ')})
134
- rescue
135
- record.merge!({@timestamp_field => Time.at(time).utc.strftime('%FT%TZ')})
148
+ tmp_time = Time.strptime(record[@time_field], @time_format).utc
149
+ rescue Exception => e
150
+ log.warn "An error occurred in parsing the time field: #{e.message}"
136
151
  end
152
+ end
153
+ if @millisecond then
154
+ record.merge!({@time_field => '%s.%03dZ' % [tmp_time.strftime('%FT%T'), tmp_time.usec / 1000.0]})
137
155
  else
138
- record.merge!({@timestamp_field => Time.at(time).utc.strftime('%FT%TZ')})
156
+ record.merge!({@time_field => tmp_time.strftime('%FT%TZ')})
139
157
  end
140
158
 
159
+ # Ignore undefined fields
141
160
  if @ignore_undefined_fields then
142
161
  record.each_key do |key|
143
- unless @fields.include?(key) then
162
+ unless fields.include?(key) then
144
163
  record.delete(key)
145
164
  end
146
165
  end
147
166
  end
148
167
 
149
- if @string_field_value_max_length >= 0 then
150
- record.each_key do |key|
151
- if record[key].instance_of?(Array) then
152
- values = []
153
- record[key].each do |value|
154
- if value.instance_of?(String) then
155
- if value.length > @string_field_value_max_length then
156
- log.warn "#{key} is too long (#{value.length}, max is #{@string_field_value_max_length})."
157
- values.push(value.slice(0, @string_field_value_max_length))
158
- else
159
- values.push(value)
160
- end
161
- end
162
- end
163
- record[key] = values
164
- elsif record[key].instance_of?(String) then
165
- if record[key].length > @string_field_value_max_length then
166
- log.warn "#{key} is too long (#{record[key].length}, max is #{@string_field_value_max_length})."
167
- record[key] = record[key].slice(0, @string_field_value_max_length)
168
- end
169
- end
170
- end
171
- end
172
-
168
+ # Add record to documents
173
169
  documents << record
174
170
 
171
+ # Update when flash size is reached
175
172
  if documents.count >= @flush_size
176
173
  update documents
177
174
  documents.clear
178
175
  end
179
176
  end
180
177
 
178
+ # Update remaining documents
181
179
  update documents unless documents.empty?
182
180
  end
183
181
 
184
182
  def update(documents)
185
- if @mode == MODE_STANDALONE then
186
- @solr.add documents, :params => {:commit => @commit_with_flush}
187
- log.debug "Added %d document(s) to Solr" % documents.count
188
- elsif @mode == MODE_SOLRCLOUD then
189
- @solr.add documents, collection: @collection, :params => {:commit => @commit_with_flush}
190
- log.debug "Added #{documents.count} document(s) to Solr"
183
+ begin
184
+ if @mode == MODE_STANDALONE then
185
+ @solr.add documents, :params => {:commit => @commit_with_flush}
186
+ elsif @mode == MODE_SOLRCLOUD then
187
+ @solr.add documents, collection: @collection, :params => {:commit => @commit_with_flush}
188
+ end
189
+ log.debug "Sent #{documents.count} document(s) to Solr"
190
+ rescue Exception
191
+ log.warn "An error occurred while sending #{documents.count} document(s) to Solr"
191
192
  end
192
- rescue Exception => e
193
- log.warn "Update: An error occurred while indexing: #{e.message}"
194
193
  end
195
194
 
196
195
  def get_unique_key
197
- response = nil
198
-
199
- if @mode == MODE_STANDALONE then
200
- response = @solr.get 'schema/uniquekey'
201
- elsif @mode == MODE_SOLRCLOUD then
202
- response = @solr.get 'schema/uniquekey', collection: @collection
196
+ unique_key = 'id'
197
+
198
+ begin
199
+ response = nil
200
+ if @mode == MODE_STANDALONE then
201
+ response = @solr.get 'schema/uniquekey'
202
+ elsif @mode == MODE_SOLRCLOUD then
203
+ response = @solr.get 'schema/uniquekey', collection: @collection
204
+ end
205
+ unique_key = response['uniqueKey']
206
+ log.debug "Unique key: #{unique_key}"
207
+ rescue Exception
208
+ log.warn 'An error occurred while getting unique key'
203
209
  end
204
210
 
205
- unique_key = response['uniqueKey']
206
- log.debug "Unique key: #{unique_key}"
207
-
208
211
  return unique_key
209
-
210
- rescue Exception => e
211
- log.warn "An error occurred: #{e.message}"
212
212
  end
213
213
 
214
214
  def get_fields
215
- response = nil
215
+ fields = []
216
216
 
217
- if @mode == MODE_STANDALONE then
218
- response = @solr.get 'schema/fields'
219
- elsif @mode == MODE_SOLRCLOUD then
220
- response = @solr.get 'schema/fields', collection: @collection
221
- end
217
+ begin
218
+ response = nil
222
219
 
223
- fields = []
224
- response['fields'].each do |field|
225
- fields.push(field['name'])
220
+ if @mode == MODE_STANDALONE then
221
+ response = @solr.get 'schema/fields'
222
+ elsif @mode == MODE_SOLRCLOUD then
223
+ response = @solr.get 'schema/fields', collection: @collection
224
+ end
225
+ response['fields'].each do |field|
226
+ fields.push(field['name'])
227
+ end
228
+ log.debug "Fields: #{fields}"
229
+ rescue Exception
230
+ log.warn 'An error occurred while getting fields'
226
231
  end
227
- log.debug "Fields: #{fields}"
228
232
 
229
233
  return fields
230
-
231
- rescue Exception => e
232
- log.warn "An error occurred: #{e.message}"
233
234
  end
234
235
  end
235
236
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-output-solr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
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-06-14 00:00:00.000000000 Z
11
+ date: 2017-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -156,8 +156,7 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: 1.1.8
159
- description: Fluent output plugin for sending data to Apache Solr. It supports standalone
160
- Solr and SolrCloud.
159
+ description: Fluent output plugin for sending data to Apache Solr.
161
160
  email:
162
161
  - minoru.osuka@gmail.com
163
162
  executables: []