Sha256: 8a3890fd86b3f74f019856311bd680bd963c358fc9aa0176ee1b0fbca8929ea6
Contents?: true
Size: 1000 Bytes
Versions: 1
Compression:
Stored size: 1000 Bytes
Contents
# encoding: utf-8 require "logstash/codecs/base" require "logstash/namespace" require "logstash/codecs/json" class LogStash::Codecs::GoogleAppengine < LogStash::Codecs::Base config_name "google_appengine" public def register @json = LogStash::Codecs::JSON.new end def decode(data) begin @json.decode(data) do |json| if is_parse_failure(json) return yield json end flatten(json).each { |flattenedJson| yield LogStash::Event.new(flattenedJson) } end rescue => e @logger.info("Failed to process data", :error => e, :data => data) yield LogStash::Event.new("message" => data, "tags" => ["_googleappengineparsefailure"]) end end end private def is_parse_failure(event) event["tags"] && event["tags"].include?("_jsonparsefailure") end def flatten(event) payload = event['protoPayload'] lines = payload['line'] payload.delete('line') lines.map { |line| payload.merge(line) } end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
logstash-codec-google_appengine-1.2.0 | lib/logstash/codecs/google_appengine.rb |