perf_check 0.7.5 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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!