Class: AlacrityRails::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/alacrity-rails/client.rb

Class Method Summary collapse

Class Method Details

.cleanupObject



37
38
39
# File 'lib/alacrity-rails/client.rb', line 37

def self.cleanup
  Thread.current[:alacrity_transaction] = nil
end

.close_transaction!Object



20
21
22
23
24
25
# File 'lib/alacrity-rails/client.rb', line 20

def self.close_transaction!
  this_transaction = transaction
  Thread.new { transmit(this_transaction) }
ensure
  cleanup
end

.log_server_startupObject



27
28
29
30
31
# File 'lib/alacrity-rails/client.rb', line 27

def self.log_server_startup
  Thread.new {
    transmit(AlacrityRails::Transaction::ServerStartup.new)
  }
end

.open_transaction(env) ⇒ Object



4
5
6
# File 'lib/alacrity-rails/client.rb', line 4

def self.open_transaction(env)
  new_transaction!(env)
end

.store_database_metrics(started_at, ended_at, data) ⇒ Object



14
15
16
17
18
# File 'lib/alacrity-rails/client.rb', line 14

def self.store_database_metrics(started_at, ended_at, data)
  if transaction
    transaction.store_database_metrics(started_at, ended_at, data)
  end
end

.store_request_metrics(started_at, ended_at, data) ⇒ Object



8
9
10
11
12
# File 'lib/alacrity-rails/client.rb', line 8

def self.store_request_metrics(started_at, ended_at, data)
  if transaction
    transaction.store_request_metrics(started_at, ended_at, data)
  end
end

.transactionObject



33
34
35
# File 'lib/alacrity-rails/client.rb', line 33

def self.transaction
  Thread.current[:alacrity_transaction]
end

.transmit(transactable) ⇒ Object



41
42
43
44
45
# File 'lib/alacrity-rails/client.rb', line 41

def self.transmit(transactable)
  Net::HTTP.start(*transactable.net_http_start_arguments) do |http|
    http.request(transactable.post_request)
  end
end