Class: Charrington::TransformRedshift
- Inherits:
-
Object
- Object
- Charrington::TransformRedshift
- Includes:
- Service
- Defined in:
- lib/logstash/outputs/charrington/transform_redshift.rb
Overview
Inserts and modifies a Postgres/Redshift database
Constant Summary collapse
- Error =
Class.new(StandardError)
- EventNil =
Class.new(Error)
- TableNameNil =
Class.new(Error)
- ColumnBlacklist =
Class.new(Error)
- KEY_FILTER_BLACKLIST =
%w[host path jwt sequence].freeze
- KEY_RAISE_BLACKLIST =
['inserted_at'].freeze
Instance Attribute Summary collapse
-
#event ⇒ Object
Returns the value of attribute event.
-
#top_level_keys ⇒ Object
readonly
Returns the value of attribute top_level_keys.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(event) ⇒ TransformRedshift
constructor
A new instance of TransformRedshift.
Methods included from Service
Constructor Details
#initialize(event) ⇒ TransformRedshift
Returns a new instance of TransformRedshift.
21 22 23 24 25 26 27 28 |
# File 'lib/logstash/outputs/charrington/transform_redshift.rb', line 21 def initialize(event) raise EventNil, 'Event is nil' if event.nil? event = event.to_hash @event = drop_keys(event) @top_level_keys = @event.keys check_blacklist end |
Instance Attribute Details
#event ⇒ Object
Returns the value of attribute event.
10 11 12 |
# File 'lib/logstash/outputs/charrington/transform_redshift.rb', line 10 def event @event end |
#top_level_keys ⇒ Object (readonly)
Returns the value of attribute top_level_keys.
11 12 13 |
# File 'lib/logstash/outputs/charrington/transform_redshift.rb', line 11 def top_level_keys @top_level_keys end |
Instance Method Details
#call ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/logstash/outputs/charrington/transform_redshift.rb', line 30 def call handle_event_key(event) add_id_to_event(event) handle_key_transform(event, 'anonymous_id', 'anonymous_user') handle_key_transform(event, 'sent_at', 'published_at') handle_key_transform(event, 'original_timestamp', 'sent_at') handle_key_transform(event, 'received_at', 'sent_at') handle_key_transform(event, 'timestamp', 'sent_at') (event) transform_session_stuff(event) event.delete_if { |k, _v| %w[session meta published_at anonymous_user].include?(k) } event end |