Sha256: 8579dbfcd08ddacf6b84c3ca9a68681c9f0913ee819767e73229a0d66daf6f13

Contents?: true

Size: 1.12 KB

Versions: 40

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require "net/http"
require "zlib"

module Sentry
  # Designed to just report events to Spotlight in development.
  class SpotlightTransport < HTTPTransport
    DEFAULT_SIDECAR_URL = "http://localhost:8969/stream"
    MAX_FAILED_REQUESTS = 3

    def initialize(configuration)
      super
      @sidecar_url = configuration.spotlight.is_a?(String) ? configuration.spotlight : DEFAULT_SIDECAR_URL
      @failed = 0
      @logged = false

      log_debug("[Spotlight] initialized for url #{@sidecar_url}")
    end

    def endpoint
      "/stream"
    end

    def send_data(data)
      if @failed >= MAX_FAILED_REQUESTS
        unless @logged
          log_debug("[Spotlight] disabling because of too many request failures")
          @logged = true
        end

        return
      end

      super
    end

    def on_error
      @failed += 1
    end

    # Similar to HTTPTransport connection, but does not support Proxy and SSL
    def conn
      sidecar = URI(@sidecar_url)
      connection = ::Net::HTTP.new(sidecar.hostname, sidecar.port, nil)
      connection.use_ssl = false
      connection
    end
  end
end

Version data entries

40 entries across 40 versions & 2 rubygems

Version Path
sentry-ruby-5.22.3 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.22.3 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.22.2 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.22.2 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.22.1 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.22.1 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.22.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.22.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.21.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.21.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.20.1 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.20.1 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.20.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.20.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.19.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.19.0 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.18.2 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.18.2 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-core-5.18.1 lib/sentry/transport/spotlight_transport.rb
sentry-ruby-5.18.1 lib/sentry/transport/spotlight_transport.rb