Class: Appsignal::JSExceptionTransaction
- Inherits:
-
Object
- Object
- Appsignal::JSExceptionTransaction
- Defined in:
- lib/appsignal/js_exception_transaction.rb
Instance Attribute Summary collapse
-
#transaction_index ⇒ Object
readonly
Returns the value of attribute transaction_index.
-
#uuid ⇒ Object
readonly
Returns the value of attribute uuid.
Instance Method Summary collapse
- #complete! ⇒ Object
-
#initialize(data) ⇒ JSExceptionTransaction
constructor
A new instance of JSExceptionTransaction.
- #set_action ⇒ Object
- #set_error ⇒ Object
- #set_metadata ⇒ Object
- #set_sample_data ⇒ Object
Constructor Details
#initialize(data) ⇒ JSExceptionTransaction
Returns a new instance of JSExceptionTransaction.
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/appsignal/js_exception_transaction.rb', line 5 def initialize(data) @data = data @uuid = SecureRandom.uuid @transaction_index = Appsignal::Extension.start_transaction(@uuid, Appsignal::Transaction::FRONTEND) set_action set_error set_sample_data end |
Instance Attribute Details
#transaction_index ⇒ Object (readonly)
Returns the value of attribute transaction_index.
3 4 5 |
# File 'lib/appsignal/js_exception_transaction.rb', line 3 def transaction_index @transaction_index end |
#uuid ⇒ Object (readonly)
Returns the value of attribute uuid.
3 4 5 |
# File 'lib/appsignal/js_exception_transaction.rb', line 3 def uuid @uuid end |
Instance Method Details
#complete! ⇒ Object
54 55 56 |
# File 'lib/appsignal/js_exception_transaction.rb', line 54 def complete! Appsignal::Extension.finish_transaction(@transaction_index) end |
#set_action ⇒ Object
16 17 18 |
# File 'lib/appsignal/js_exception_transaction.rb', line 16 def set_action Appsignal::Extension.set_transaction_action(@transaction_index, @data['action']) end |
#set_error ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/appsignal/js_exception_transaction.rb', line 26 def set_error Appsignal::Extension.set_transaction_error( @transaction_index, @data['name'], @data['message'], JSON.generate(@data['backtrace']) ) end |
#set_metadata ⇒ Object
20 21 22 23 24 |
# File 'lib/appsignal/js_exception_transaction.rb', line 20 def Appsignal::Extension.( @transaction_index, 'path', @data['path'] ) if @data['path'] end |
#set_sample_data ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/appsignal/js_exception_transaction.rb', line 35 def set_sample_data { :params => @data['params'], :environment => @data['environment'], :tags => @data['tags'] }.each do |key, data| next unless data.is_a?(Array) || data.is_a?(Hash) begin Appsignal::Extension.set_transaction_sample_data( @transaction_index, key.to_s, JSON.generate(data) ) rescue JSON::GeneratorError=>e Appsignal.logger.error("JSON generate error (#{e.}) for '#{data.inspect}'") end end end |