Skip to content

Commit adafb88

Browse files
committed
Add support for tag extraction from a hash
extract_tags() now handles hashes properly. Prior to this commit, extract_tags handled hashes like this: {["tagk1", "tagv1"]=>"true"}
1 parent f6abb61 commit adafb88

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

lib/logstash/outputs/influxdb.rb

+14-3
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,23 @@ def extract_tags(fields)
301301
remainder = fields.dup
302302

303303
tags = if remainder.has_key?("tags") && remainder["tags"].respond_to?(:inject)
304-
remainder.delete("tags").inject({}) { |tags, tag| tags[tag] = "true"; tags }
304+
remainder.delete("tags").inject({}) do |tags, tag|
305+
tag.is_a?(Array) ? tags[tag[0]] = tag[1] : tags[tag] = "true"
306+
tags
307+
end
305308
else
306309
{}
307310
end
308-
309-
@send_as_tags.each { |key| (tags[key] = remainder.delete(key)) if remainder.has_key?(key) }
311+
312+
@send_as_tags.each do |key|
313+
if remainder.has_key?(key)
314+
if remainder[key].is_a?(Hash)
315+
tags.merge!(remainder.delete(key))
316+
else
317+
tags[key] = remainder.delete(key)
318+
end
319+
end
320+
end
310321

311322
tags.delete_if { |key,value| value.nil? || value == "" }
312323
remainder.delete_if { |key,value| value.nil? || value == "" }

0 commit comments

Comments
 (0)