appsignal 2.1.0.alpha.3 → 2.1.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +43 -0
  4. data/.rubocop_todo.yml +289 -0
  5. data/.travis.yml +4 -0
  6. data/CHANGELOG.md +11 -1
  7. data/Gemfile +1 -1
  8. data/LICENSE +1 -1
  9. data/appsignal.gemspec +1 -0
  10. data/bin/appsignal +2 -2
  11. data/ext/agent.yml +11 -11
  12. data/ext/extconf.rb +33 -33
  13. data/gemfiles/rails-4.2.gemfile +4 -0
  14. data/gemfiles/resque.gemfile +4 -0
  15. data/lib/appsignal.rb +58 -54
  16. data/lib/appsignal/auth_check.rb +15 -16
  17. data/lib/appsignal/capistrano.rb +4 -4
  18. data/lib/appsignal/cli.rb +28 -28
  19. data/lib/appsignal/cli/diagnose.rb +11 -11
  20. data/lib/appsignal/cli/helpers.rb +1 -1
  21. data/lib/appsignal/cli/install.rb +38 -38
  22. data/lib/appsignal/cli/notify_of_deploy.rb +1 -1
  23. data/lib/appsignal/config.rb +73 -71
  24. data/lib/appsignal/event_formatter.rb +8 -8
  25. data/lib/appsignal/event_formatter/action_view/render_formatter.rb +4 -4
  26. data/lib/appsignal/event_formatter/active_record/instantiation_formatter.rb +1 -1
  27. data/lib/appsignal/event_formatter/active_record/sql_formatter.rb +1 -1
  28. data/lib/appsignal/event_formatter/elastic_search/search_formatter.rb +9 -7
  29. data/lib/appsignal/event_formatter/faraday/request_formatter.rb +1 -1
  30. data/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb +6 -6
  31. data/lib/appsignal/event_formatter/moped/query_formatter.rb +56 -43
  32. data/lib/appsignal/extension.rb +5 -5
  33. data/lib/appsignal/hooks.rb +28 -26
  34. data/lib/appsignal/hooks/active_support_notifications.rb +2 -2
  35. data/lib/appsignal/hooks/celluloid.rb +1 -1
  36. data/lib/appsignal/hooks/data_mapper.rb +2 -2
  37. data/lib/appsignal/hooks/delayed_job.rb +1 -1
  38. data/lib/appsignal/hooks/mongo_ruby_driver.rb +1 -1
  39. data/lib/appsignal/hooks/net_http.rb +4 -4
  40. data/lib/appsignal/hooks/passenger.rb +2 -2
  41. data/lib/appsignal/hooks/puma.rb +4 -4
  42. data/lib/appsignal/hooks/rake.rb +1 -1
  43. data/lib/appsignal/hooks/redis.rb +1 -1
  44. data/lib/appsignal/hooks/sequel.rb +2 -2
  45. data/lib/appsignal/hooks/shoryuken.rb +8 -8
  46. data/lib/appsignal/hooks/sidekiq.rb +16 -15
  47. data/lib/appsignal/hooks/unicorn.rb +1 -1
  48. data/lib/appsignal/hooks/webmachine.rb +1 -1
  49. data/lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb +6 -6
  50. data/lib/appsignal/integrations/data_mapper.rb +2 -3
  51. data/lib/appsignal/integrations/delayed_job_plugin.rb +5 -5
  52. data/lib/appsignal/integrations/mongo_ruby_driver.rb +6 -6
  53. data/lib/appsignal/integrations/padrino.rb +8 -8
  54. data/lib/appsignal/integrations/railtie.rb +5 -5
  55. data/lib/appsignal/integrations/resque.rb +4 -5
  56. data/lib/appsignal/integrations/resque_active_job.rb +3 -6
  57. data/lib/appsignal/integrations/sinatra.rb +2 -2
  58. data/lib/appsignal/integrations/webmachine.rb +2 -3
  59. data/lib/appsignal/js_exception_transaction.rb +10 -10
  60. data/lib/appsignal/marker.rb +3 -3
  61. data/lib/appsignal/rack/generic_instrumentation.rb +10 -9
  62. data/lib/appsignal/rack/js_exception_catcher.rb +7 -6
  63. data/lib/appsignal/rack/rails_instrumentation.rb +9 -8
  64. data/lib/appsignal/rack/sinatra_instrumentation.rb +19 -17
  65. data/lib/appsignal/rack/streaming_listener.rb +9 -8
  66. data/lib/appsignal/system.rb +19 -17
  67. data/lib/appsignal/transaction.rb +97 -40
  68. data/lib/appsignal/transmitter.rb +23 -30
  69. data/lib/appsignal/utils.rb +3 -3
  70. data/lib/appsignal/utils/params_sanitizer.rb +1 -1
  71. data/lib/appsignal/utils/query_params_sanitizer.rb +1 -1
  72. data/lib/appsignal/version.rb +2 -2
  73. data/spec/.rubocop.yml +4 -0
  74. data/spec/lib/appsignal/auth_check_spec.rb +7 -7
  75. data/spec/lib/appsignal/capistrano2_spec.rb +41 -41
  76. data/spec/lib/appsignal/capistrano3_spec.rb +43 -44
  77. data/spec/lib/appsignal/cli/notify_of_deploy_spec.rb +9 -11
  78. data/spec/lib/appsignal/cli_spec.rb +9 -9
  79. data/spec/lib/appsignal/config_spec.rb +88 -86
  80. data/spec/lib/appsignal/event_formatter/action_view/render_formatter_spec.rb +9 -9
  81. data/spec/lib/appsignal/event_formatter/active_record/instantiation_formatter_spec.rb +4 -4
  82. data/spec/lib/appsignal/event_formatter/active_record/sql_formatter_spec.rb +4 -4
  83. data/spec/lib/appsignal/event_formatter/elastic_search/search_formatter_spec.rb +12 -12
  84. data/spec/lib/appsignal/event_formatter/faraday/request_formatter_spec.rb +4 -4
  85. data/spec/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter_spec.rb +23 -23
  86. data/spec/lib/appsignal/event_formatter/moped/query_formatter_spec.rb +29 -30
  87. data/spec/lib/appsignal/event_formatter_spec.rb +28 -28
  88. data/spec/lib/appsignal/extension_spec.rb +15 -15
  89. data/spec/lib/appsignal/garbage_collection_profiler_spec.rb +6 -5
  90. data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +12 -12
  91. data/spec/lib/appsignal/hooks/delayed_job_spec.rb +34 -34
  92. data/spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb +3 -3
  93. data/spec/lib/appsignal/hooks/net_http_spec.rb +10 -10
  94. data/spec/lib/appsignal/hooks/rake_spec.rb +7 -7
  95. data/spec/lib/appsignal/hooks/redis_spec.rb +6 -6
  96. data/spec/lib/appsignal/hooks/shoryuken_spec.rb +21 -22
  97. data/spec/lib/appsignal/hooks/sidekiq_spec.rb +48 -45
  98. data/spec/lib/appsignal/hooks/webmachine_spec.rb +2 -2
  99. data/spec/lib/appsignal/hooks_spec.rb +16 -17
  100. data/spec/lib/appsignal/integrations/data_mapper_spec.rb +7 -8
  101. data/spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb +19 -19
  102. data/spec/lib/appsignal/integrations/object_spec.rb +3 -3
  103. data/spec/lib/appsignal/integrations/padrino_spec.rb +44 -44
  104. data/spec/lib/appsignal/integrations/railtie_spec.rb +13 -13
  105. data/spec/lib/appsignal/integrations/resque_active_job_spec.rb +7 -7
  106. data/spec/lib/appsignal/integrations/resque_spec.rb +8 -8
  107. data/spec/lib/appsignal/integrations/sinatra_spec.rb +7 -7
  108. data/spec/lib/appsignal/integrations/webmachine_spec.rb +15 -15
  109. data/spec/lib/appsignal/js_exception_transaction_spec.rb +23 -23
  110. data/spec/lib/appsignal/marker_spec.rb +8 -8
  111. data/spec/lib/appsignal/minutely_spec.rb +6 -6
  112. data/spec/lib/appsignal/rack/generic_instrumentation_spec.rb +7 -7
  113. data/spec/lib/appsignal/rack/js_exception_catcher_spec.rb +13 -13
  114. data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +11 -11
  115. data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +21 -21
  116. data/spec/lib/appsignal/rack/streaming_listener_spec.rb +36 -36
  117. data/spec/lib/appsignal/system/container_spec.rb +1 -1
  118. data/spec/lib/appsignal/transaction_spec.rb +213 -184
  119. data/spec/lib/appsignal/transmitter_spec.rb +20 -20
  120. data/spec/lib/appsignal/utils/params_sanitizer_spec.rb +19 -19
  121. data/spec/lib/appsignal/utils/query_params_sanitizer_spec.rb +41 -41
  122. data/spec/lib/appsignal/utils_spec.rb +41 -37
  123. data/spec/lib/appsignal_spec.rb +150 -142
  124. data/spec/spec_helper.rb +18 -18
  125. data/spec/support/delegate_matcher.rb +6 -6
  126. data/spec/support/helpers/api_request_helper.rb +2 -2
  127. data/spec/support/helpers/config_helpers.rb +3 -3
  128. data/spec/support/helpers/dependency_helper.rb +13 -13
  129. data/spec/support/helpers/directory_helper.rb +5 -5
  130. data/spec/support/helpers/env_helpers.rb +14 -14
  131. data/spec/support/helpers/system_helpers.rb +3 -3
  132. data/spec/support/helpers/transaction_helpers.rb +10 -10
  133. metadata +20 -2
@@ -8,12 +8,12 @@ module Appsignal
8
8
  end
9
9
 
10
10
  def install
11
- ::PhusionPassenger.on_event(:starting_worker_process) do |forked|
11
+ ::PhusionPassenger.on_event(:starting_worker_process) do |_forked|
12
12
  Appsignal.forked
13
13
  end
14
14
 
15
15
  ::PhusionPassenger.on_event(:stopping_worker_process) do
16
- Appsignal.stop('passenger')
16
+ Appsignal.stop("passenger")
17
17
  end
18
18
  end
19
19
  end
@@ -11,20 +11,20 @@ module Appsignal
11
11
 
12
12
  def install
13
13
  ::Puma.cli_config.options[:before_worker_boot] ||= []
14
- ::Puma.cli_config.options[:before_worker_boot] << Proc.new do |id|
14
+ ::Puma.cli_config.options[:before_worker_boot] << proc do |_id|
15
15
  Appsignal.forked
16
16
  end
17
17
 
18
18
  ::Puma.cli_config.options[:before_worker_shutdown] ||= []
19
- ::Puma.cli_config.options[:before_worker_shutdown] << Proc.new do |id|
20
- Appsignal.stop('puma before_worker_shutdown')
19
+ ::Puma.cli_config.options[:before_worker_shutdown] << proc do |_id|
20
+ Appsignal.stop("puma before_worker_shutdown")
21
21
  end
22
22
 
23
23
  ::Puma::Cluster.class_eval do
24
24
  alias stop_workers_without_appsignal stop_workers
25
25
 
26
26
  def stop_workers
27
- Appsignal.stop('puma cluster')
27
+ Appsignal.stop("puma cluster")
28
28
  stop_workers_without_appsignal
29
29
  end
30
30
  end
@@ -24,7 +24,7 @@ module Appsignal
24
24
  transaction.set_action(name)
25
25
  transaction.set_error(error)
26
26
  transaction.complete
27
- Appsignal.stop('rake')
27
+ Appsignal.stop("rake")
28
28
  raise error
29
29
  end
30
30
  end
@@ -14,7 +14,7 @@ module Appsignal
14
14
  alias process_without_appsignal process
15
15
 
16
16
  def process(commands, &block)
17
- Appsignal.instrument 'query.redis' do
17
+ Appsignal.instrument "query.redis" do
18
18
  process_without_appsignal(commands, &block)
19
19
  end
20
20
  end
@@ -4,7 +4,7 @@ module Appsignal
4
4
  # Add query instrumentation
5
5
  def log_yield(sql, args = nil)
6
6
  Appsignal.instrument(
7
- 'sql.sequel',
7
+ "sql.sequel",
8
8
  nil,
9
9
  sql,
10
10
  Appsignal::EventFormatter::SQL_BODY_FORMAT
@@ -18,7 +18,7 @@ module Appsignal
18
18
  # Add query instrumentation
19
19
  def log_connection_yield(sql, conn, args = nil)
20
20
  Appsignal.instrument(
21
- 'sql.sequel',
21
+ "sql.sequel",
22
22
  nil,
23
23
  sql,
24
24
  Appsignal::EventFormatter::SQL_BODY_FORMAT
@@ -1,23 +1,23 @@
1
1
  module Appsignal
2
2
  class Hooks
3
3
  class ShoryukenMiddleware
4
- def call(worker_instance, queue, sqs_msg, body)
4
+ def call(_worker_instance, queue, sqs_msg, body)
5
5
  metadata = {
6
6
  :queue => queue
7
7
  }
8
- exclude_keys = [ :job_class, :queue_name, :arguments ]
9
- metadata.merge!(body.reject{ |key| exclude_keys.member?(key.to_sym) })
8
+ exclude_keys = [:job_class, :queue_name, :arguments]
9
+ metadata.merge!(body.reject { |key| exclude_keys.member?(key.to_sym) })
10
10
  metadata.merge!(sqs_msg.attributes)
11
11
 
12
12
  options = {
13
- :class => body['job_class'],
14
- :method => 'perform',
13
+ :class => body["job_class"],
14
+ :method => "perform",
15
15
  :metadata => metadata
16
16
  }
17
- options[:params] = body['arguments'] if body.key?('arguments')
18
- options[:queue_start] = Time.at(sqs_msg.attributes['SentTimestamp'].to_i / 1000) if sqs_msg.attributes.key?('SentTimestamp')
17
+ options[:params] = body["arguments"] if body.key?("arguments")
18
+ options[:queue_start] = Time.at(sqs_msg.attributes["SentTimestamp"].to_i / 1000) if sqs_msg.attributes.key?("SentTimestamp")
19
19
 
20
- Appsignal.monitor_transaction('perform_job.shoryuken', options) do
20
+ Appsignal.monitor_transaction("perform_job.shoryuken", options) do
21
21
  yield
22
22
  end
23
23
  end
@@ -5,28 +5,29 @@ module Appsignal
5
5
 
6
6
  def job_keys
7
7
  @job_keys ||= Set.new(%w(
8
- class args retried_at failed_at
9
- error_message error_class backtrace
10
- error_backtrace enqueued_at retry
11
- jid retry created_at wrapped
8
+ class args retried_at failed_at
9
+ error_message error_class backtrace
10
+ error_backtrace enqueued_at retry
11
+ jid retry created_at wrapped
12
12
  ))
13
13
  end
14
14
 
15
- def call(worker, item, queue)
16
- if item['class'] == 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper'
17
- params = format_args(item['args'].first['arguments'])
18
- else
19
- params = format_args(item['args'])
20
- end
15
+ def call(_worker, item, _queue)
16
+ params =
17
+ if item["class"] == "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
18
+ format_args(item["args"].first["arguments"])
19
+ else
20
+ format_args(item["args"])
21
+ end
21
22
 
22
23
  Appsignal.monitor_transaction(
23
- 'perform_job.sidekiq',
24
- :class => item['wrapped'] || item['class'],
25
- :method => 'perform',
24
+ "perform_job.sidekiq",
25
+ :class => item["wrapped"] || item["class"],
26
+ :method => "perform",
26
27
  :metadata => formatted_metadata(item),
27
28
  :params => params,
28
- :queue_start => item['enqueued_at'],
29
- :queue_time => (Time.now.to_f - item['enqueued_at'].to_f) * 1000
29
+ :queue_start => item["enqueued_at"],
30
+ :queue_time => (Time.now.to_f - item["enqueued_at"].to_f) * 1000
30
31
  ) do
31
32
  yield
32
33
  end
@@ -29,7 +29,7 @@ module Appsignal
29
29
  alias close_without_appsignal close
30
30
 
31
31
  def close
32
- Appsignal.stop('unicorn')
32
+ Appsignal.stop("unicorn")
33
33
  close_without_appsignal
34
34
  end
35
35
  end
@@ -8,7 +8,7 @@ module Appsignal
8
8
  end
9
9
 
10
10
  def install
11
- require 'appsignal/integrations/webmachine'
11
+ require "appsignal/integrations/webmachine"
12
12
  ::Webmachine::Decision::FSM.class_eval do
13
13
  include Appsignal::Integrations::WebmachinePlugin::FSM
14
14
  alias run_without_appsignal run
@@ -2,17 +2,17 @@ module Appsignal
2
2
  class Capistrano
3
3
  def self.tasks(config)
4
4
  config.load do
5
- after 'deploy', 'appsignal:deploy'
6
- after 'deploy:migrations', 'appsignal:deploy'
5
+ after "deploy", "appsignal:deploy"
6
+ after "deploy:migrations", "appsignal:deploy"
7
7
 
8
8
  namespace :appsignal do
9
9
  task :deploy do
10
- env = fetch(:appsignal_env, fetch(:stage, fetch(:rails_env, fetch(:rack_env, 'production'))))
11
- user = ENV['USER'] || ENV['USERNAME']
10
+ env = fetch(:appsignal_env, fetch(:stage, fetch(:rails_env, fetch(:rack_env, "production"))))
11
+ user = ENV["USER"] || ENV["USERNAME"]
12
12
  revision = fetch(:appsignal_revision, fetch(:current_revision))
13
13
 
14
14
  appsignal_config = Appsignal::Config.new(
15
- ENV['PWD'],
15
+ ENV["PWD"],
16
16
  env,
17
17
  fetch(:appsignal_config, {}),
18
18
  Logger.new(StringIO.new)
@@ -26,7 +26,7 @@ module Appsignal
26
26
 
27
27
  marker = Marker.new(marker_data, appsignal_config)
28
28
  if config.dry_run
29
- puts 'Dry run: AppSignal deploy marker not actually sent.'
29
+ puts "Dry run: AppSignal deploy marker not actually sent."
30
30
  else
31
31
  marker.transmit
32
32
  end
@@ -20,15 +20,14 @@ module Appsignal
20
20
 
21
21
  # Record event
22
22
  Appsignal::Transaction.current.record_event(
23
- 'query.data_mapper',
24
- 'DataMapper Query',
23
+ "query.data_mapper",
24
+ "DataMapper Query",
25
25
  body_content,
26
26
  message.duration,
27
27
  body_format
28
28
  )
29
29
  super
30
30
  end
31
-
32
31
  end
33
32
  end
34
33
  end
@@ -8,8 +8,8 @@ module Appsignal
8
8
  invoke_with_instrumentation(job, block)
9
9
  end
10
10
 
11
- lifecycle.after(:execute) do |execute|
12
- Appsignal.stop('delayed job')
11
+ lifecycle.after(:execute) do |_execute|
12
+ Appsignal.stop("delayed job")
13
13
  end
14
14
  end
15
15
 
@@ -17,18 +17,18 @@ module Appsignal
17
17
  if job.respond_to?(:payload_object)
18
18
  # Direct Delayed Job
19
19
  class_and_method_name = extract_value(job.payload_object, :appsignal_name, job.name)
20
- class_name, method_name = class_and_method_name.split('#')
20
+ class_name, method_name = class_and_method_name.split("#")
21
21
  args = extract_value(job.payload_object, :args, {})
22
22
  job_data = job
23
23
  elsif job.respond_to?(:job_data)
24
24
  # Via ActiveJob
25
- class_name, method_name = job.job_data[:name].split('#')
25
+ class_name, method_name = job.job_data[:name].split("#")
26
26
  args = job.job_data[:args] || {}
27
27
  job_data = job.job_data
28
28
  end
29
29
 
30
30
  Appsignal.monitor_transaction(
31
- 'perform_job.delayed_job',
31
+ "perform_job.delayed_job",
32
32
  :class => class_name,
33
33
  :method => method_name,
34
34
  :metadata => {
@@ -12,7 +12,7 @@ module Appsignal
12
12
  .format(event.command_name, event.command)
13
13
 
14
14
  # Store the query on the transaction, we need it when the event finishes
15
- store = transaction.store('mongo_driver')
15
+ store = transaction.store("mongo_driver")
16
16
  store[event.request_id] = command
17
17
 
18
18
  # Start this event
@@ -22,13 +22,13 @@ module Appsignal
22
22
  # Called by Mongo::Monitor when query succeeds
23
23
  def succeeded(event)
24
24
  # Finish the event as succeeded
25
- finish('SUCCEEDED', event)
25
+ finish("SUCCEEDED", event)
26
26
  end
27
27
 
28
28
  # Called by Mongo::Monitor when query fails
29
29
  def failed(event)
30
30
  # Finish the event as failed
31
- finish('FAILED', event)
31
+ finish("FAILED", event)
32
32
  end
33
33
 
34
34
  # Finishes the event in the AppSignal extension
@@ -38,13 +38,13 @@ module Appsignal
38
38
  return if transaction.paused?
39
39
 
40
40
  # Get the query from the transaction store
41
- store = transaction.store('mongo_driver')
41
+ store = transaction.store("mongo_driver")
42
42
  command = store.delete(event.request_id) || {}
43
43
 
44
44
  # Finish the event in the extension.
45
45
  transaction.finish_event(
46
- 'query.mongodb',
47
- "#{event.command_name.to_s} | #{event.database_name} | #{result}",
46
+ "query.mongodb",
47
+ "#{event.command_name} | #{event.database_name} | #{result}",
48
48
  Appsignal::Utils.data_generate(command),
49
49
  Appsignal::EventFormatter::DEFAULT
50
50
  )
@@ -1,4 +1,4 @@
1
- require 'appsignal'
1
+ require "appsignal"
2
2
 
3
3
  module Appsignal::Integrations
4
4
  module PadrinoPlugin
@@ -9,7 +9,7 @@ module Appsignal::Integrations
9
9
  Appsignal.config = Appsignal::Config.new(
10
10
  root,
11
11
  Padrino.env,
12
- :log_path => File.join(root, 'log')
12
+ :log_path => File.join(root, "log")
13
13
  )
14
14
 
15
15
  Appsignal.start_logger
@@ -21,8 +21,8 @@ end
21
21
  module Padrino::Routing::InstanceMethods
22
22
  alias route_without_appsignal route!
23
23
 
24
- def route!(base=settings, pass_block=nil)
25
- if !Appsignal.active? || env['sinatra.static_file']
24
+ def route!(base = settings, pass_block = nil)
25
+ if !Appsignal.active? || env["sinatra.static_file"]
26
26
  route_without_appsignal(base, pass_block)
27
27
  return
28
28
  end
@@ -33,7 +33,7 @@ module Padrino::Routing::InstanceMethods
33
33
  request
34
34
  )
35
35
  begin
36
- Appsignal.instrument('process_action.padrino') do
36
+ Appsignal.instrument("process_action.padrino") do
37
37
  route_without_appsignal(base, pass_block)
38
38
  end
39
39
  rescue => error
@@ -41,8 +41,8 @@ module Padrino::Routing::InstanceMethods
41
41
  raise error
42
42
  ensure
43
43
  transaction.set_action(get_payload_action(request))
44
- transaction.set_metadata('path', request.path)
45
- transaction.set_metadata('method', request.request_method)
44
+ transaction.set_metadata("path", request.path)
45
+ transaction.set_metadata("method", request.request_method)
46
46
  transaction.set_http_or_background_queue_start
47
47
  Appsignal::Transaction.complete_current!
48
48
  end
@@ -50,7 +50,7 @@ module Padrino::Routing::InstanceMethods
50
50
 
51
51
  def get_payload_action(request)
52
52
  # Short-circut is there's no request object to obtain information from
53
- return "#{settings.name}" if request.nil?
53
+ return settings.name.to_s if request.nil?
54
54
 
55
55
  # Older versions of Padrino work with a route object
56
56
  route_obj = defined?(request.route_obj) && request.route_obj
@@ -1,11 +1,11 @@
1
1
  Appsignal.logger.info("Loading Rails (#{Rails.version}) integration")
2
2
 
3
- require 'appsignal/rack/rails_instrumentation'
3
+ require "appsignal/rack/rails_instrumentation"
4
4
 
5
5
  module Appsignal
6
6
  module Integrations
7
7
  class Railtie < ::Rails::Railtie
8
- initializer 'appsignal.configure_rails_initialization' do |app|
8
+ initializer "appsignal.configure_rails_initialization" do |app|
9
9
  Appsignal::Integrations::Railtie.initialize_appsignal(app)
10
10
  end
11
11
 
@@ -15,7 +15,7 @@ module Appsignal
15
15
  Rails.root,
16
16
  Rails.env,
17
17
  :name => Rails.application.class.parent_name,
18
- :log_path => Rails.root.join('log')
18
+ :log_path => Rails.root.join("log")
19
19
  )
20
20
 
21
21
  # Start logger
@@ -27,10 +27,10 @@ module Appsignal
27
27
  )
28
28
 
29
29
  if Appsignal.config.active? &&
30
- Appsignal.config[:enable_frontend_error_catching] == true
30
+ Appsignal.config[:enable_frontend_error_catching] == true
31
31
  app.middleware.insert_before(
32
32
  Appsignal::Rack::RailsInstrumentation,
33
- Appsignal::Rack::JSExceptionCatcher,
33
+ Appsignal::Rack::JSExceptionCatcher
34
34
  )
35
35
  end
36
36
 
@@ -1,16 +1,15 @@
1
1
  module Appsignal
2
2
  module Integrations
3
3
  module ResquePlugin
4
-
5
4
  # Do not use this file as a template for your own background processor
6
5
  # Resque is an exception to the rule and the code below causes the
7
6
  # extension to shut itself down after a single job.
8
7
  # see http://docs.appsignal.com/background-monitoring/custom.html
9
- def around_perform_resque_plugin(*args)
8
+ def around_perform_resque_plugin(*_args)
10
9
  Appsignal.monitor_single_transaction(
11
- 'perform_job.resque',
12
- :class => self.to_s,
13
- :method => 'perform'
10
+ "perform_job.resque",
11
+ :class => to_s,
12
+ :method => "perform"
14
13
  ) do
15
14
  yield
16
15
  end
@@ -5,25 +5,22 @@ module Appsignal
5
5
 
6
6
  def self.included(base)
7
7
  base.class_eval do
8
-
9
8
  around_perform do |job, block|
10
9
  Appsignal.monitor_single_transaction(
11
- 'perform_job.resque',
10
+ "perform_job.resque",
12
11
  :class => job.class.to_s,
13
- :method => 'perform',
12
+ :method => "perform",
14
13
  :params => job.format_args(job.arguments),
15
14
  :metadata => {
16
15
  :id => job.job_id,
17
16
  :queue => job.queue_name
18
- },
17
+ }
19
18
  ) do
20
19
  block.call
21
20
  end
22
21
  end
23
-
24
22
  end
25
23
  end
26
-
27
24
  end
28
25
  end
29
26
  end
@@ -1,5 +1,5 @@
1
- require 'appsignal'
2
- require 'appsignal/rack/sinatra_instrumentation'
1
+ require "appsignal"
2
+ require "appsignal/rack/sinatra_instrumentation"
3
3
 
4
4
  Appsignal.logger.info("Loading Sinatra (#{Sinatra::VERSION}) integration")
5
5