Class: Condux::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/condux/client.rb

Overview

A configured reporter. Cheap to hold for the process lifetime; safe for concurrent use.

Constant Summary collapse

DEFAULT_MAX_RETRIES =
3

Instance Method Summary collapse

Constructor Details

#initialize(dsn:, environment:, release:, max_retries:, transport:, sleep:, clock:) ⇒ Client

Returns a new instance of Client.



16
17
18
19
20
21
22
# File 'lib/condux/client.rb', line 16

def initialize(dsn:, environment:, release:, max_retries:, transport:, sleep:, clock:)
  parsed = Dsn.parse(dsn)
  @transport = EventTransport.new(parsed.store_url, parsed.public_key, max_retries, transport, sleep)
  @environment = environment
  @release = release
  @clock = clock || -> { Time.now }
end

Instance Method Details

#capture_exception(error, handled: true, request: nil, tags: nil) ⇒ Object

request (url/method/query_string) and tags describe this one event. They are passed here rather than set on the scope because scope state outlives the call: on a server handling requests concurrently, request detail set ambiently attaches to whichever event is captured next, which may belong to a different request.



28
29
30
31
# File 'lib/condux/client.rb', line 28

def capture_exception(error, handled: true, request: nil, tags: nil)
  dispatch(level: Level::ERROR, exception: EventPayload.exception(error, handled: handled),
           request: request, tags: tags)
end

#capture_message(message, level, request: nil, tags: nil) ⇒ Object



33
34
35
# File 'lib/condux/client.rb', line 33

def capture_message(message, level, request: nil, tags: nil)
  dispatch(level: level, message: message, request: request, tags: tags)
end