Sha256: 745f2475b25b57f6c3c48cf9532b9330f1f924f7927fc6cce748f76b519cba42

Contents?: true

Size: 810 Bytes

Versions: 14

Compression:

Stored size: 810 Bytes

Contents

module Ahoy
  module Stores
    class KinesisFirehoseStore < LogStore
      def log_visit(data)
        post(visits_stream, data)
      end

      def log_event(data)
        post(events_stream, data)
      end

      def client
        @client ||= Aws::Firehose::Client.new(credentials)
      end

      def post(stream, data)
        client.put_record(
          delivery_stream_name: stream,
          record: {
            data: "#{data.to_json}\n"
          }
        )
      end

      def credentials
        {
          access_key_id: ENV["AWS_ACCESS_KEY_ID"],
          secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
          region: "us-east-1"
        }
      end

      def visits_stream
        "ahoy_visits"
      end

      def events_stream
        "ahoy_events"
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ahoy_matey-1.6.1 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.6.0 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.5.5 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.5.4 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.5.3 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.5.2 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.5.1 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.5.0 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.4.2 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.4.1 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.4.0 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.3.1 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.3.0 lib/ahoy/stores/kinesis_firehose_store.rb
ahoy_matey-1.2.2 lib/ahoy/stores/kinesis_firehose_store.rb