Class: Errorgap::Transacter
- Inherits:
-
Object
- Object
- Errorgap::Transacter
- Defined in:
- lib/errorgap/transacter.rb
Instance Method Summary collapse
- #configure(configuration) ⇒ Object
- #deliver(transaction) ⇒ Object
- #deliver_async(transaction) ⇒ Object
-
#initialize(configuration) ⇒ Transacter
constructor
A new instance of Transacter.
Constructor Details
#initialize(configuration) ⇒ Transacter
Returns a new instance of Transacter.
9 10 11 |
# File 'lib/errorgap/transacter.rb', line 9 def initialize(configuration) configure(configuration) end |
Instance Method Details
#configure(configuration) ⇒ Object
13 14 15 |
# File 'lib/errorgap/transacter.rb', line 13 def configure(configuration) @configuration = configuration end |
#deliver(transaction) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/errorgap/transacter.rb', line 23 def deliver(transaction) uri = URI.join( @configuration.endpoint.end_with?("/") ? @configuration.endpoint : "#{@configuration.endpoint}/", "api/projects/#{@configuration.project_slug}/transactions" ) request = Net::HTTP::Post.new(uri) request["Content-Type"] = "application/json" request["User-Agent"] = "errorgap-ruby/#{Errorgap::VERSION}" request["X-Errorgap-Project-Key"] = @configuration.api_key if present?(@configuration.api_key) request.body = JSON.generate(transaction.to_h) Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request) end rescue StandardError => exception @configuration.logger&.warn("[errorgap] APM delivery error: #{exception.class}: #{exception.}") end |
#deliver_async(transaction) ⇒ Object
17 18 19 20 21 |
# File 'lib/errorgap/transacter.rb', line 17 def deliver_async(transaction) return unless should_sample? Thread.new { deliver(transaction) } end |