Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion lib/logstash/codecs/json.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,24 @@ def parse_json(json)
else
events.each { |event| yield event }
end
rescue LogStash::Json::ParserError => e
log_parse_error(e, json)
yield parse_json_error_event(json)
rescue => e
@logger.error("JSON parse error, original data now in message field", message: e.message, exception: e.class, data: json)
# This should NEVER happen. But hubris has been the cause of many pipeline breaking things
log_generic_error(e, json)
yield parse_json_error_event(json)
end

def log_parse_error(e, json)
@logger.warn("JSON parse error, original data now in message field", message: e.message, exception: e.class, data: json)
end

def log_generic_error(e, json)
@logger.error("An unexpected error occurred parsing JSON data, original data now in message field",
message: e.message, exception: e.class, backtrace: e.backtrace, data: json)
end

def parse_json_error_event(json)
event_factory.new_event("message" => json, "tags" => ["_jsonparsefailure"])
end
Expand Down