Sha256: dd880647e5a07e20c61801cc9f1116a5146f13a52580479b93b41e0f29e560df
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
# encoding: utf-8 require "logstash/filters/base" require "logstash/namespace" require 'digest' class LogStash::Filters::GoogleAppengine < LogStash::Filters::Base config_name "google_appengine" public def register @md5 = Digest::MD5.new @semaphore = Mutex.new end def filter(event) return unless filter?(event) return unless event['protoPayload'] payload = event['protoPayload'] payload.delete '@type' payload['type'] = event['type'] lines = payload.delete 'line' if lines lines.each_with_index { |line, i| yield create_event(collect_line_data(i, line, payload)) } else yield create_event(collect_resource_request_data(payload)) end event.cancel end private # noinspection RubyStringKeysInHashInspection def collect_line_data(i, line, payload) { 'id' => get_id(payload['requestId'] + i.to_s), 'message' => line.delete('logMessage'), 'position' => i } .merge(payload) .merge(line) end # noinspection RubyStringKeysInHashInspection def collect_resource_request_data(payload) { 'id' => get_id(payload['requestId']), 'time' => payload['endTime'], 'position' => 0 } .merge(payload) end def create_event(payload) new_event = LogStash::Event::new(payload) filter_matched(new_event) new_event end def get_id(source) @semaphore.synchronize { @md5.hexdigest(source) } end end # class LogStash::Filters::GoogleAppengine
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
logstash-filter-google_appengine-0.114.0 | lib/logstash/filters/google_appengine.rb |