perf_check 0.7.5 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d095bb79a78a7359752c359b1d2aa7522f5940e3
4
- data.tar.gz: dee373ee12cff0dfc9768569631e72b310e30dd3
3
+ metadata.gz: a0d9ae6fc8c0d7d6581b8c8202f82bd7b2cf6f1e
4
+ data.tar.gz: cdec3df9f3dc51ad2b329c652dffe1154f0f80a3
5
5
  SHA512:
6
- metadata.gz: 5a68878b499d72dedf356b3f4b4d256ce20c4b8d6765eb9061de50361f386922633cdb9f40de20cdebdfdb2284e480031fcffdd0f11ebcf69cef1eeaa81a9baa
7
- data.tar.gz: 267b3de573f6fa941ff4dcd2f81d00a31c6cc7459669f87d241674906a670e5de1db8f792c4e958ca4a91eca8c3a3cef92851d6f426d11779bdf063962da4ea7
6
+ metadata.gz: dcb0b85c4ff22bb9dd0cd7084b513b55942e74d2a18c24fd009cab27d7f0bbd95d241119e48679ce0f9becf96abaf9da6bbb9b74305017ea3eb210a06ffe0eb5
7
+ data.tar.gz: 3647a68aac43d4bd6f63678c988988de348c69ea276288d5966caef248ebe82f8226690e1d3ad0385df8bfc8cc4d5b8ab3dd56d3eff33d4b276003f7f7ef7297
data/bin/perf_check CHANGED
@@ -18,7 +18,7 @@ app_root =
18
18
 
19
19
 
20
20
  if File.exists?("#{app_root}/tmp/pids/server.pid")
21
- abort("It looks like a rails server is already running. Shut it down before continuing with perf_check.")
21
+ abort("It looks like a rails server is already running. Shut it down or remove the pid in tmp/pids/server.pid before continuing with perf_check.")
22
22
  end
23
23
 
24
24
  perf_check = PerfCheck.new(app_root).tap(&:load_config)
@@ -93,7 +93,7 @@ class PerfCheck
93
93
  private
94
94
 
95
95
  def current_migrations_not_on_master
96
- exec("git diff origin/master --name-only --diff-filter=A db/migrate/").
96
+ exec("git diff master --name-only --diff-filter=A db/migrate/").
97
97
  split.reverse
98
98
  end
99
99
 
@@ -1,3 +1,5 @@
1
+ require 'securerandom'
2
+
1
3
  class PerfCheck
2
4
  class Middleware
3
5
  attr_reader :app
@@ -17,21 +19,26 @@ class PerfCheck
17
19
 
18
20
  begin
19
21
  status, headers, body = app.call(env)
20
- rescue ::Exception => e
21
- trace_file = "#{Rails.root}/tmp/perf_check_traces" <<
22
- "/trace-#{SecureRandom.hex(16)}.txt"
23
- FileUtils.mkdir_p(File.dirname(trace_file))
24
-
25
- File.open(trace_file, 'w') do |f|
26
- f.puts("#{e.class}: #{e.message}")
27
- f.write(e.backtrace.join("\n"))
28
- end
29
- status, headers, body = 500, {"X-PerfCheck-StackTrace" => trace_file}, ['']
22
+ rescue => error
23
+ status, headers, body = 500, { "X-PerfCheck-StackTrace" => stacktrace_for(error) }, ['']
30
24
  end
31
-
32
25
  headers['X-PerfCheck-Query-Count'] = query_count.to_s
33
-
34
26
  [status, headers, body]
35
27
  end
28
+
29
+ # These files are used by the perf_check daemon app
30
+ def stacktrace_for(e)
31
+ trace_file = "#{Rails.root}/tmp/perf_check_traces" <<
32
+ "/trace-#{SecureRandom.hex(16)}.txt"
33
+ FileUtils.mkdir_p(File.dirname(trace_file))
34
+
35
+ File.open(trace_file, 'w') do |f|
36
+ f.puts("#{e.class}: #{e.message}")
37
+ f.write(e.backtrace.join("\n"))
38
+ end
39
+ trace_file
40
+ end
41
+
42
+
36
43
  end
37
44
  end
@@ -24,7 +24,7 @@ class PerfCheck
24
24
  end
25
25
 
26
26
  require 'perf_check/middleware'
27
- app.middleware.use PerfCheck::Middleware
27
+ app.middleware.insert_before 0, PerfCheck::Middleware
28
28
  end
29
29
  end
30
30
  end
@@ -76,7 +76,7 @@ class PerfCheck
76
76
  end
77
77
 
78
78
  def speedup_factor
79
- reference_latency / this_latency
79
+ reference_latency.to_f / this_latency.to_f
80
80
  end
81
81
 
82
82
  def response_diff
data/lib/perf_check.rb CHANGED
@@ -13,7 +13,7 @@ class PerfCheck
13
13
  attr_reader :app_root, :options, :git, :server, :test_cases
14
14
  attr_accessor :logger
15
15
 
16
- def initialize(app_root, log: STDERR)
16
+ def initialize(app_root)
17
17
  @app_root = app_root
18
18
 
19
19
  @options = OpenStruct.new(
@@ -31,7 +31,7 @@ class PerfCheck
31
31
  json: false
32
32
  )
33
33
 
34
- @logger = Logger.new(log).tap do |logger|
34
+ @logger = Logger.new(STDERR).tap do |logger|
35
35
  logger.formatter = proc do |severity, datetime, progname, msg|
36
36
  "[#{datetime.strftime("%Y-%m-%d %H:%M:%S")}] #{msg}\n"
37
37
  end
@@ -51,7 +51,7 @@ class PerfCheck
51
51
  begin
52
52
  Dir.chdir(app_root)
53
53
  load "#{app_root}/config/perf_check.rb"
54
- rescue ::Exception => e
54
+ rescue LoadError => e
55
55
  error = ConfigLoadError.new(e.message)
56
56
  error.set_backtrace(e.backtrace)
57
57
  raise error
@@ -84,14 +84,14 @@ class PerfCheck
84
84
  (git.pop rescue nil) if git.stashed?
85
85
  end
86
86
 
87
- cbdata = {}
87
+ callbacks = {}
88
88
 
89
89
  if $!
90
- cbdata[:error_message] = "#{$!.class}: #{$!.message}\n"
91
- cbdata[:error_message] << $!.backtrace.map{|x| "\t#{x}"}.join("\n")
90
+ callbacks[:error_message] = "#{$!.class}: #{$!.message}\n"
91
+ callbacks[:error_message] << $!.backtrace.map{|x| "\t#{x}"}.join("\n")
92
92
  end
93
93
 
94
- trigger_when_finished_callbacks(cbdata)
94
+ trigger_when_finished_callbacks(callbacks)
95
95
  end
96
96
  end
97
97
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perf_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rubytune
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-30 00:00:00.000000000 Z
11
+ date: 2017-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -42,30 +42,44 @@ dependencies:
42
42
  name: colorize
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.7.3
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.7.3
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: diffy
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 3.0.5
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 3.0.5
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description:
70
84
  email:
71
85
  executables:
@@ -103,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
117
  version: '0'
104
118
  requirements: []
105
119
  rubyforge_project:
106
- rubygems_version: 2.4.5.1
120
+ rubygems_version: 2.6.11
107
121
  signing_key:
108
122
  specification_version: 4
109
123
  summary: PERF CHECKKK!