Skip to content

Commit 862e0c3

Browse files
authored
Merge pull request #15 from logicmonitor/14-nested-metadata-extraction-breaking-with
Fix breaking issue for nested metadata key if does not exist.
2 parents f3b8fd4 + 5eb7f34 commit 862e0c3

File tree

5 files changed

+32
-3
lines changed

5 files changed

+32
-3
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@
1616
- Fix user agent populated in headers
1717
## 2.0.0
1818
- Dont send event metadata by default. Add config include_metadata_keys for including custom metadata
19+
## 2.0.1
20+
- Fix incomplete json metadata error.

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#FROM jruby:9.3.9.0-jdk11
2-
FROM logstash:8.5.1 AS builder
2+
FROM logstash:8.11.3 AS builder
33

44
FROM jruby:9.3.9.0-jdk11
55
COPY --from=builder /usr/share/logstash /logstash

lib/logstash/outputs/lmlogs.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,12 @@ def processEvent(event)
298298
elsif @final_metadata_keys
299299
@final_metadata_keys.each do | key, value |
300300
nestedVal = event_json
301-
value.each { |x| nestedVal = nestedVal[x] }
301+
value.each do |x|
302+
if nestedVal == nil
303+
break
304+
end
305+
nestedVal = nestedVal[x]
306+
end
302307
if nestedVal != nil
303308
lmlogs_event[key] = nestedVal
304309
end

lib/logstash/outputs/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module LmLogsLogstashPlugin
4-
VERSION = '2.0.0'
4+
VERSION = '2.0.1'
55
end

spec/outputs/metadata_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,26 @@ def check_same_hash(h1,h2)
8383
puts " hash diff : #{Hashdiff.diff(constructed_event,expected_event)}"
8484
expect(Hashdiff.diff(constructed_event,expected_event)).to eq([])
8585
end
86+
87+
it "Netsted key that doesn not exist should not break" do
88+
plugin = create_output_plugin_with_conf({
89+
"portal_name" => "localhost",
90+
"access_id" => "abcd",
91+
"access_key" => "abcd",
92+
"lm_property" => "system.hostname",
93+
"property_key" => "host",
94+
"include_metadata_keys" => %w[nested1.nested2.nestedkey_that_doesnt_exist]
95+
})
96+
constructed_event = plugin.processEvent(logstash_event)
97+
expected_event = {
98+
"message" => "hello this is log 1",
99+
"timestamp" => logstash_event.timestamp,
100+
"_lm.resourceId" => {"system.hostname" => "host1"}
101+
}
102+
puts " actual : #{constructed_event} \n expected : #{expected_event}"
103+
puts " hash diff : #{Hashdiff.diff(constructed_event,expected_event)}"
104+
expect(Hashdiff.diff(constructed_event,expected_event)).to eq([])
105+
end
106+
107+
86108
end

0 commit comments

Comments
 (0)