fluent-plugin-output-solr 0.4.5 → 0.4.6

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: c3b1d94e9b198256826b6717b367f3d908f9cf2f
4
- data.tar.gz: dff11f4040d0a6efb8edbcd6b4c9b7cdefd86ebd
3
+ metadata.gz: 47e3caa1f6aa5e15e129881af97b226e5ad19bf9
4
+ data.tar.gz: daf903c8e406d5122fae89a1472b782a1482785e
5
5
  SHA512:
6
- metadata.gz: 774d85e8cca935a67f2c13e4c0948ee094b8dbd2161fb479c40c823c72e585658659fae1cc4d756c415e4a4628c445ee8f802ff1bb853d491f2e1e46a61513a8
7
- data.tar.gz: b8a36d1441c7c956e9f5dde485f6a8f30663586990a9ca759e54073a43cf0d22280227fef99c33538b6fe4a03408405f8c63c2ef532d1520b0bfa614e620f4b1
6
+ metadata.gz: 1767955e6d29a293bf326f4712637b3c905cd2b28c00eef6ecaa387a47275b55ed2a0d41fa34ad0270be7022ad9f43550004f9312e2d9c9c1324477450dd1638
7
+ data.tar.gz: cfa4c10ae32925707d32e8e73e42c06732503798a813aa9e1aa38d826c36d8b2d00ed74227ab1c37e6537ce7f89abda8985d9bc93795dfe34e93454aeb91dfaf
data/README.md CHANGED
@@ -80,6 +80,14 @@ A field name of unique key in the Solr schema.xml. If omitted, it will get uniqu
80
80
  unique_key_field id
81
81
  ```
82
82
 
83
+ ### string_field_value_max_length
84
+
85
+ A string field value max length. If set -1, it means unlimited (default -1). However, there is a limit of Solr.
86
+
87
+ ```
88
+ string_field_value_max_length -1
89
+ ```
90
+
83
91
  ### timestamp_field
84
92
 
85
93
  A field name of event timestamp in the Solr schema.xml (default event_timestamp).
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "fluent-plugin-output-solr"
7
- spec.version = "0.4.5"
7
+ spec.version = "0.4.6"
8
8
  spec.authors = ["Minoru Osuka"]
9
9
  spec.email = ["minoru.osuka@gmail.com"]
10
10
 
data/fluent.conf CHANGED
@@ -13,46 +13,11 @@
13
13
  key_name message
14
14
  </filter>
15
15
 
16
- <filter messages>
17
- @type geoip
18
- log_level error
19
- enable_auto_download true
20
- md5_url http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.md5
21
- download_url http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
22
- md5_path "#{ENV['HOME']}/fluentd/geoip/database/GeoLite2-City.md5"
23
- database_path "#{ENV['HOME']}/fluentd/geoip/database/GeoLite2-City.mmdb"
24
- lookup_field clientip
25
- output_field geoip
26
- field_delimiter _
27
- flatten true
28
- locale en
29
- continent true
30
- country true
31
- city true
32
- location true
33
- postal true
34
- registered_country true
35
- represented_country true
36
- subdivisions true
37
- traits true
38
- connection_type true
39
- </filter>
40
-
41
- <filter messages>
42
- @type record_transformer
43
- log_level error
44
- enable_ruby
45
- <record>
46
- event_timestamp ${timestamp}
47
- geoip_localtion_latitude_longitude ${geoip_location_latitude.nil? || geoip_location_longitude.nil? ? nil : geoip_location_latitude.to_s + ',' + geoip_location_longitude.to_s}
48
- </record>
49
- </filter>
50
-
51
16
  <match messages>
52
17
  @type solr
53
- log_level error
54
- zk_host "#{ENV['SOLR_ZK_HOST']}"
55
- collection "#{ENV['SOLR_COLLECTION']}"
18
+ # url http://localhost:8983/solr/collection1
19
+ zk_host localhost:2181/solr
20
+ collection collection1
56
21
  ignore_undefined_fields false
57
22
  flush_size 100
58
23
  buffer_type memory
@@ -9,6 +9,7 @@ module Fluent
9
9
 
10
10
  DEFAULT_COLLECTION = 'collection1'
11
11
  DEFAULT_IGNORE_UNDEFINED_FIELDS = false
12
+ DEFAULT_STRING_FIELD_VALUE_MAX_LENGTH = -1
12
13
  DEFAULT_TAG_FIELD = 'tag'
13
14
  DEFAULT_TIMESTAMP_FIELD = 'event_timestamp'
14
15
  DEFAULT_FLUSH_SIZE = 100
@@ -34,7 +35,9 @@ module Fluent
34
35
  config_param :defined_fields, :array, :default => nil,
35
36
  :desc => 'The defined fields in the Solr schema.xml. If omitted, it will get fields via Solr Schema API.'
36
37
  config_param :ignore_undefined_fields, :bool, :default => DEFAULT_IGNORE_UNDEFINED_FIELDS,
37
- :desc => 'Ignore undefined fields in the Solr schema.xml.'
38
+ :desc => 'Ignore undefined fields in the Solr schema.xml.'
39
+ config_param :string_field_value_max_length, :integer, :default => DEFAULT_STRING_FIELD_VALUE_MAX_LENGTH,
40
+ :desc => 'Field value max length.'
38
41
 
39
42
  config_param :unique_key_field, :string, :default => nil,
40
43
  :desc => 'A field name of unique key in the Solr schema.xml. If omitted, it will get unique key via Solr Schema API.'
@@ -125,6 +128,30 @@ module Fluent
125
128
  end
126
129
  end
127
130
 
131
+ if @string_field_value_max_length >= 0 then
132
+ record.each_key do |key|
133
+ if record[key].instance_of?(Array) then
134
+ values = []
135
+ record[key].each do |value|
136
+ if value.instance_of?(String) then
137
+ if value.length > @string_field_value_max_length then
138
+ log.warn "#{key} is too long (#{value.length}, max is #{@string_field_value_max_length})."
139
+ values.push(value.slice(0, @string_field_value_max_length))
140
+ else
141
+ values.push(value)
142
+ end
143
+ end
144
+ end
145
+ record[key] = values
146
+ elsif record[key].instance_of?(String) then
147
+ if record[key].length > @string_field_value_max_length then
148
+ log.warn "#{key} is too long (#{record[key].length}, max is #{@string_field_value_max_length})."
149
+ record[key] = record[key].slice(0, @string_field_value_max_length)
150
+ end
151
+ end
152
+ end
153
+ end
154
+
128
155
  documents << record
129
156
 
130
157
  if documents.count >= @flush_size
@@ -139,13 +166,13 @@ module Fluent
139
166
  def update(documents)
140
167
  if @mode == MODE_STANDALONE then
141
168
  @solr.add documents, :params => {:commit => @commit_with_flush}
142
- log.debug "Added %d document(s) to Solr" % documents.count
169
+ log.debug "Added #{documents.count} document(s) to Solr"
143
170
  elsif @mode == MODE_SOLRCLOUD then
144
171
  @solr.add documents, collection: @collection, :params => {:commit => @commit_with_flush}
145
- log.debug "Update: Added %d document(s) to Solr" % documents.count
172
+ log.debug "Added #{documents.count} document(s) to Solr"
146
173
  end
147
174
  rescue Exception => e
148
- log.warn "Update: An error occurred while indexing: #{e.message}"
175
+ log.warn "An error occurred while indexing: #{e.message}"
149
176
  end
150
177
 
151
178
  def get_unique_key
@@ -163,7 +190,7 @@ module Fluent
163
190
  return unique_key
164
191
 
165
192
  rescue Exception => e
166
- log.warn "Unique key: #{e.message}"
193
+ log.warn "An error occurred: #{e.message}"
167
194
  end
168
195
 
169
196
  def get_fields
@@ -184,7 +211,7 @@ module Fluent
184
211
  return fields
185
212
 
186
213
  rescue Exception => e
187
- log.warn "Fields: #{e.message}"
214
+ log.warn "An error occurred: #{e.message}"
188
215
  end
189
216
  end
190
217
  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: 0.4.5
4
+ version: 0.4.6
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-03-29 00:00:00.000000000 Z
11
+ date: 2017-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd