newrelic_route_check 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # NewrelicRouteCheck
2
2
 
3
- TODO: Write a gem description
3
+ Compares New Relic controller_summary.csv to the routes defined in a Rails app
4
4
 
5
5
  ## Installation
6
6
 
@@ -18,7 +18,10 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ This gem requires you use New Relic to download your `controller_summary.csv` from the transaction history tab. Preferably with the 7 day history to have the best coverage. Download the file to `./tmp/controller_summary.csv` then you can run: `bundle exec rake newrelic:compare_with_routes`
22
+
23
+ Which should give output of routes that are defined in your app but not receiving any traffic.
24
+
22
25
 
23
26
  ## Contributing
24
27
 
@@ -1,15 +1,17 @@
1
1
  require "newrelic_route_check/version"
2
+ require "newrelic_route_check/railtie" if Rails::VERSION::MAJOR.to_i >= 3
3
+ require "csv"
2
4
 
3
5
  module NewrelicRouteCheck
4
-
6
+
5
7
  def self.actions_from_routes
6
- controller_actions = Rails::Application.routes.routes.inject({}) do |controller_actions, route|
8
+ controller_actions = application.routes.routes.inject({}) do |controller_actions, route|
7
9
  if route.requirements[:controller]
8
10
  (controller_actions[route.requirements[:controller]] ||= []) << route.requirements[:action]
9
11
  end
10
12
  controller_actions
11
13
  end
12
- controller_actions.keys.map{|controller| controller_actions[controller].map{|action| "#{controller.camelize}Controller##{action}"}}.flatten.uniq
14
+ controller_actions.keys.map{|controller| controller_actions[controller].map{|action| "#{controller.camelize}Controller##{action}"}}.flatten.uniq
13
15
  end
14
16
 
15
17
  def self.actions_from_new_relic(file)
@@ -24,15 +26,25 @@ module NewrelicRouteCheck
24
26
 
25
27
  def self.routes_diff_output(new_relic_controller_actions, formatted_routes_actions)
26
28
  puts "found #{new_relic_controller_actions.length} uniq new relic controller action hits"
27
- puts "found #{formatted_routes_actions.length} uniq controller action pairs"
29
+ puts "found #{formatted_routes_actions.length} uniq Rails routes controller action pairs"
28
30
 
29
31
  only_new_relic = new_relic_controller_actions - formatted_routes_actions
30
- puts "exists in new relic, but not in routes: #{only_new_relic.length}"
31
- puts only_new_relic
32
+ puts "exists in new relic, but not in routes: #{only_new_relic.length}"
33
+ puts only_new_relic
32
34
 
33
35
  not_hit_in_new_relic = formatted_routes_actions - new_relic_controller_actions
34
36
  puts "never accessed in new relic stats: #{not_hit_in_new_relic.length}"
35
37
  puts not_hit_in_new_relic
36
38
  end
37
39
 
40
+ private
41
+
42
+ def self.application
43
+ if Rails::VERSION::MAJOR.to_i >= 3
44
+ Rails.application
45
+ else
46
+ Rails::Application
47
+ end
48
+ end
49
+
38
50
  end
@@ -0,0 +1,7 @@
1
+ module NewrelicRouteCheck
2
+ class Railtie < Rails::Railtie
3
+ rake_tasks do
4
+ require "newrelic_route_check/tasks"
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module NewrelicRouteCheck
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_route_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-20 00:00:00.000000000 Z
12
+ date: 2014-04-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -57,6 +57,7 @@ files:
57
57
  - README.md
58
58
  - Rakefile
59
59
  - lib/newrelic_route_check.rb
60
+ - lib/newrelic_route_check/railtie.rb
60
61
  - lib/newrelic_route_check/tasks.rb
61
62
  - lib/newrelic_route_check/version.rb
62
63
  - newrelic_route_check.gemspec
@@ -75,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
76
  version: '0'
76
77
  segments:
77
78
  - 0
78
- hash: 3071380302214824674
79
+ hash: 2457378324206358196
79
80
  required_rubygems_version: !ruby/object:Gem::Requirement
80
81
  none: false
81
82
  requirements:
@@ -84,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
85
  version: '0'
85
86
  segments:
86
87
  - 0
87
- hash: 3071380302214824674
88
+ hash: 2457378324206358196
88
89
  requirements: []
89
90
  rubyforge_project:
90
91
  rubygems_version: 1.8.23