newrelic_rpm 2.14.1 → 3.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of newrelic_rpm might be problematic. Click here for more details.

Files changed (123) hide show
  1. data/CHANGELOG +8 -0
  2. data/README.rdoc +2 -0
  3. data/install.rb +2 -2
  4. data/lib/new_relic/agent.rb +34 -1
  5. data/lib/new_relic/agent/agent.rb +34 -25
  6. data/lib/new_relic/agent/browser_monitoring.rb +111 -0
  7. data/lib/new_relic/agent/error_collector.rb +4 -4
  8. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +3 -3
  9. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +5 -7
  10. data/lib/new_relic/agent/instrumentation/data_mapper.rb +8 -8
  11. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +1 -1
  12. data/lib/new_relic/agent/instrumentation/memcache.rb +1 -1
  13. data/lib/new_relic/agent/instrumentation/merb/controller.rb +1 -1
  14. data/lib/new_relic/agent/instrumentation/merb/errors.rb +1 -1
  15. data/lib/new_relic/agent/instrumentation/metric_frame.rb +1 -0
  16. data/lib/new_relic/agent/instrumentation/queue_time.rb +26 -26
  17. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +1 -1
  18. data/lib/new_relic/agent/instrumentation/rails/errors.rb +1 -1
  19. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +2 -2
  20. data/lib/new_relic/agent/instrumentation/sinatra.rb +1 -1
  21. data/lib/new_relic/agent/method_tracer.rb +15 -15
  22. data/lib/new_relic/agent/shim_agent.rb +2 -0
  23. data/lib/new_relic/agent/stats_engine/metric_stats.rb +3 -3
  24. data/lib/new_relic/agent/stats_engine/samplers.rb +2 -2
  25. data/lib/new_relic/agent/stats_engine/transactions.rb +2 -1
  26. data/lib/new_relic/agent/transaction_sample_builder.rb +101 -0
  27. data/lib/new_relic/agent/transaction_sampler.rb +299 -251
  28. data/lib/new_relic/control.rb +2 -2
  29. data/lib/new_relic/control/class_methods.rb +0 -5
  30. data/lib/new_relic/control/configuration.rb +4 -3
  31. data/lib/new_relic/control/frameworks/rails.rb +9 -12
  32. data/lib/new_relic/control/instance_methods.rb +2 -2
  33. data/lib/new_relic/control/instrumentation.rb +1 -1
  34. data/lib/new_relic/control/server_methods.rb +2 -2
  35. data/lib/new_relic/delayed_job_injection.rb +1 -1
  36. data/lib/new_relic/local_environment.rb +7 -7
  37. data/lib/new_relic/rack/browser_monitoring.rb +61 -0
  38. data/lib/new_relic/stats.rb +6 -6
  39. data/lib/new_relic/version.rb +4 -4
  40. data/newrelic.yml +19 -0
  41. data/newrelic_rpm.gemspec +9 -4
  42. data/test/active_record_fixtures.rb +5 -5
  43. data/test/config/test_control.rb +3 -3
  44. data/test/new_relic/agent/agent/connect_test.rb +27 -6
  45. data/test/new_relic/agent/agent/start_test.rb +13 -13
  46. data/test/new_relic/agent/agent/start_worker_thread_test.rb +8 -8
  47. data/test/new_relic/agent/agent_test.rb +85 -0
  48. data/test/new_relic/agent/agent_test_controller.rb +9 -9
  49. data/test/new_relic/agent/agent_test_controller_test.rb +37 -37
  50. data/test/new_relic/agent/browser_monitoring_test.rb +124 -0
  51. data/test/new_relic/agent/busy_calculator_test.rb +7 -7
  52. data/test/new_relic/agent/error_collector/notice_error_test.rb +9 -9
  53. data/test/new_relic/agent/error_collector_test.rb +54 -54
  54. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +69 -69
  55. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +36 -0
  56. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +3 -3
  57. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +11 -11
  58. data/test/new_relic/agent/instrumentation/queue_time_test.rb +38 -35
  59. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +18 -18
  60. data/test/new_relic/agent/memcache_instrumentation_test.rb +12 -12
  61. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +1 -1
  62. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +16 -15
  63. data/test/new_relic/agent/method_tracer_test.rb +60 -60
  64. data/test/new_relic/agent/mock_scope_listener.rb +8 -8
  65. data/test/new_relic/agent/rpm_agent_test.rb +26 -26
  66. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +17 -17
  67. data/test/new_relic/agent/stats_engine/samplers_test.rb +4 -4
  68. data/test/new_relic/agent/stats_engine/stats_engine_test.rb +51 -51
  69. data/test/new_relic/agent/transaction_sample_builder_test.rb +36 -36
  70. data/test/new_relic/agent/transaction_sampler_test.rb +727 -178
  71. data/test/new_relic/agent/worker_loop_test.rb +4 -4
  72. data/test/new_relic/collection_helper_test.rb +15 -15
  73. data/test/new_relic/command/deployments_test.rb +5 -5
  74. data/test/new_relic/control_test.rb +25 -25
  75. data/test/new_relic/local_environment_test.rb +11 -11
  76. data/test/new_relic/metric_spec_test.rb +21 -21
  77. data/test/new_relic/rack/episodes_test.rb +35 -35
  78. data/test/new_relic/stats_test.rb +61 -43
  79. data/test/new_relic/transaction_sample_subtest_test.rb +15 -15
  80. data/test/new_relic/transaction_sample_test.rb +25 -25
  81. data/test/new_relic/version_number_test.rb +11 -11
  82. data/test/test_contexts.rb +7 -7
  83. data/test/test_helper.rb +6 -6
  84. data/ui/helpers/developer_mode_helper.rb +67 -67
  85. data/ui/helpers/google_pie_chart.rb +4 -4
  86. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +4 -4
  87. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb +3 -3
  88. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb +7 -7
  89. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb +1 -1
  90. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb +9 -9
  91. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb +1 -1
  92. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb +8 -8
  93. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb +9 -9
  94. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb +4 -4
  95. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb +2 -2
  96. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb +8 -8
  97. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb +3 -3
  98. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb +6 -6
  99. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb +3 -3
  100. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb +2 -2
  101. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb +6 -6
  102. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb +2 -2
  103. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb +1 -1
  104. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb +4 -4
  105. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb +3 -3
  106. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb +4 -4
  107. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb +1 -1
  108. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +1 -1
  109. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +21 -21
  110. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb +2 -2
  111. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb +6 -6
  112. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb +2 -2
  113. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb +1 -1
  114. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb +1 -1
  115. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb +3 -3
  116. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb +1 -1
  117. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb +8 -8
  118. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb +3 -3
  119. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb +3 -3
  120. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +5 -5
  121. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb +20 -20
  122. metadata +15 -9
  123. data/lib/new_relic/agent/instrumentation/sequel.rb +0 -109
@@ -27,14 +27,14 @@ class GooglePieChart
27
27
  end
28
28
  params = {:cht => 'p', :chs => "#{width}x#{height}", :chd => "t:#{values.join(',')}", :chl => labels.join('|') }
29
29
  params['chco'] = color if color
30
-
30
+
31
31
  url = "http://chart.apis.google.com/chart?#{to_query(params)}"
32
32
 
33
33
  alt_msg = "This pie chart is generated by Google Charts. You must be connected to the Internet to view this chart."
34
34
  html = "<img id=\"pie_chart_image\" src=\"#{url}\" alt=\"#{alt_msg}\"/>"
35
- return html
35
+ return html
36
36
  end
37
-
37
+
38
38
  private
39
39
  # Hash#to_query is not present in all supported rails platforms, so implement
40
40
  # its equivalent here.
@@ -43,7 +43,7 @@ private
43
43
  params.each do |k,v|
44
44
  p << "#{k}=#{v}"
45
45
  end
46
-
46
+
47
47
  p.join "&"
48
48
  end
49
49
  end
@@ -1,6 +1,6 @@
1
1
  require 'dependency_detection/version'
2
2
  module DependencyDetection
3
-
3
+
4
4
  module_function
5
5
  @@items = []
6
6
  def defer(&block)
@@ -8,7 +8,7 @@ module DependencyDetection
8
8
  item.instance_eval(&block)
9
9
  @@items << item
10
10
  end
11
-
11
+
12
12
  def detect!
13
13
  @@items.each do |item|
14
14
  if item.dependencies_satisfied?
@@ -16,7 +16,7 @@ module DependencyDetection
16
16
  end
17
17
  end
18
18
  end
19
-
19
+
20
20
  class Dependent
21
21
  attr_reader :executed
22
22
  def executed!
@@ -29,7 +29,7 @@ module DependencyDetection
29
29
  @dependencies = []
30
30
  @executes = []
31
31
  end
32
-
32
+
33
33
  def dependencies_satisfied?
34
34
  !executed and check_dependencies
35
35
  end
@@ -2,13 +2,13 @@ require 'new_relic/metric_parser'
2
2
  module NewRelic
3
3
  module MetricParser
4
4
  class ActionMailer < NewRelic::MetricParser::MetricParser
5
-
5
+
6
6
  def is_action_mailer?; true; end
7
-
7
+
8
8
  def short_name
9
9
  "ActionMailer - #{segments[1]}"
10
10
  end
11
-
11
+
12
12
  end
13
13
  end
14
14
  end
@@ -2,30 +2,30 @@ require 'new_relic/metric_parser'
2
2
  module NewRelic
3
3
  module MetricParser
4
4
  class ActiveMerchant < NewRelic::MetricParser::MetricParser
5
-
5
+
6
6
  def is_active_merchant?; true; end
7
-
7
+
8
8
  def is_active_merchant_gateway?
9
9
  segments[1] == 'gateway'
10
10
  end
11
-
11
+
12
12
  def is_active_merchant_operation?
13
13
  segments[1] == 'operation'
14
14
  end
15
-
15
+
16
16
  def gateway_name
17
17
  # ends in "Gateway" - trim that off
18
18
  segments[2][0..-8].titleize
19
19
  end
20
-
20
+
21
21
  def operation_name
22
22
  segments[2]
23
23
  end
24
-
24
+
25
25
  def short_name
26
26
  segments[2]
27
27
  end
28
-
28
+
29
29
  end
30
30
  end
31
31
  end
@@ -3,7 +3,7 @@ module NewRelic
3
3
  module MetricParser
4
4
  class ActiveRecord < NewRelic::MetricParser::MetricParser
5
5
  def is_active_record? ; true; end
6
-
6
+
7
7
  def model_class
8
8
  return segments[1]
9
9
  end
@@ -2,9 +2,9 @@ require 'new_relic/metric_parser'
2
2
  module NewRelic
3
3
  module MetricParser
4
4
  class Apdex < NewRelic::MetricParser::MetricParser
5
-
5
+
6
6
  CLIENT = 'Client'
7
-
7
+
8
8
  # Convenience method for creating the appropriate client
9
9
  # metric name.
10
10
  def self.client_metric(apdex_t)
@@ -27,12 +27,12 @@ module NewRelic
27
27
  def is_summary?
28
28
  segments.size == 1
29
29
  end
30
-
30
+
31
31
  # Apdex/Client/N
32
32
  def apdex_t
33
33
  is_client? && segments[2].to_f
34
34
  end
35
-
35
+
36
36
  def platform
37
37
  is_browser_summary? && segments[3]
38
38
  end
@@ -52,7 +52,7 @@ module NewRelic
52
52
  def platform_and_user_agent
53
53
  is_browser_summary? && segments[3..-1].join(" ")
54
54
  end
55
-
55
+
56
56
  def developer_name
57
57
  case
58
58
  when is_client? then "Apdex Client (#{apdex_t})"
@@ -61,7 +61,7 @@ module NewRelic
61
61
  else "Apdex #{segments[1..-1].join("/")}"
62
62
  end
63
63
  end
64
-
64
+
65
65
  def short_name
66
66
  # standard controller actions
67
67
  if segments.length > 1
@@ -70,12 +70,12 @@ module NewRelic
70
70
  'All Frontend Urls'
71
71
  end
72
72
  end
73
-
73
+
74
74
  def url
75
75
  '/' + segments[1..-1].join('/')
76
76
  end
77
-
78
- # this is used to match transaction traces to controller actions.
77
+
78
+ # this is used to match transaction traces to controller actions.
79
79
  # TT's don't have a preceding slash :P
80
80
  def tt_path
81
81
  segments[1..-1].join('/')
@@ -1,6 +1,6 @@
1
1
  require 'new_relic/metric_parser/java'
2
2
  class NewRelic::MetricParser::BackgroundTransaction < NewRelic::MetricParser::Java
3
-
3
+
4
4
  def call_rate_suffix
5
5
  'cpm'
6
6
  end
@@ -1,9 +1,9 @@
1
1
  class NewRelic::MetricParser::Client < NewRelic::MetricParser::MetricParser
2
-
2
+
3
3
  def measure
4
4
  segments[1]
5
5
  end
6
-
6
+
7
7
  def frontend?; measure == 'frontend'; end
8
8
  def backend?; measure == 'backend'; end
9
9
  def totaltime?; measure == 'totaltime'; end
@@ -11,11 +11,11 @@ class NewRelic::MetricParser::Client < NewRelic::MetricParser::MetricParser
11
11
  def all?
12
12
  segments[1].index('all') == 0
13
13
  end
14
-
14
+
15
15
  def operation
16
16
  all? ? 'All Operations' : segments[1].titleize.gsub(/(load|ready|time|end)$/,' \1')
17
17
  end
18
-
18
+
19
19
  def legend_name
20
20
  if frontend?
21
21
  "Browser Rendering and Asset Download"
@@ -25,19 +25,19 @@ class NewRelic::MetricParser::Client < NewRelic::MetricParser::MetricParser
25
25
  segments[1..-1].join(" ")
26
26
  end
27
27
  end
28
-
28
+
29
29
  def platform
30
30
  segments[2]
31
31
  end
32
-
32
+
33
33
  def user_agent
34
34
  segments[3..-1].join(" ")
35
35
  end
36
-
36
+
37
37
  def platform_and_user_agent
38
38
  segments[2..-1].join(" ")
39
39
  end
40
-
40
+
41
41
  def developer_name
42
42
  name = segments[1].capitalize
43
43
  name << " (#{segments[2..-1].join(" ")})" if segments.length > 2
@@ -8,11 +8,11 @@ module NewRelic
8
8
 
9
9
  # If the controller name segments look like a file path, convert it to the controller
10
10
  # class name. If it begins with a capital letter, assume it's already a class name.
11
- # We only expect a lower case letter with Rails, so we'll be able to use camelize for
11
+ # We only expect a lower case letter with Rails, so we'll be able to use camelize for
12
12
  # that.
13
13
  def controller_name
14
14
  path = segments[1..-2].join('/')
15
- path < 'a' ? path : path.camelize+"Controller"
15
+ path < 'a' ? path : path.camelize+"Controller"
16
16
  end
17
17
 
18
18
  def action_name
@@ -22,11 +22,11 @@ module NewRelic
22
22
  segments[-1]
23
23
  end
24
24
  end
25
-
25
+
26
26
  def developer_name
27
27
  "#{controller_name}##{action_name}"
28
28
  end
29
-
29
+
30
30
  def is_web_transaction?
31
31
  true
32
32
  end
@@ -35,7 +35,7 @@ module NewRelic
35
35
  def cpu_metric
36
36
  Metric.lookup((["ControllerCPU"] + segments[1..-1]).join('/'), :create => false)
37
37
  end
38
-
38
+
39
39
  def short_name
40
40
  # standard controller actions
41
41
  if segments.length > 1
@@ -44,12 +44,12 @@ module NewRelic
44
44
  'All Controller Actions'
45
45
  end
46
46
  end
47
-
47
+
48
48
  def url
49
49
  '/' + segments[1..-1].join('/')
50
50
  end
51
-
52
- # this is used to match transaction traces to controller actions.
51
+
52
+ # this is used to match transaction traces to controller actions.
53
53
  # TT's don't have a preceding slash :P
54
54
  def tt_path
55
55
  segments[1..-1].join('/')
@@ -58,7 +58,7 @@ module NewRelic
58
58
  def call_rate_suffix
59
59
  'rpm'
60
60
  end
61
-
61
+
62
62
  def summary_metrics
63
63
  %w[HttpDispatcher]
64
64
  end
@@ -2,9 +2,9 @@ require 'new_relic/metric_parser'
2
2
  module NewRelic
3
3
  module MetricParser
4
4
  class ControllerCPU < NewRelic::MetricParser::MetricParser
5
-
5
+
6
6
  def is_controller_cpu?; true; end
7
-
7
+
8
8
  def controller_name
9
9
  segments[1..-2].join('/').camelize+"Controller"
10
10
  end
@@ -20,7 +20,7 @@ module NewRelic
20
20
  def base_metric_name
21
21
  "Controller/" + segments[1..-1].join('/')
22
22
  end
23
-
23
+
24
24
  def short_name
25
25
  # standard controller actions
26
26
  if segments.length > 1
@@ -29,7 +29,7 @@ module NewRelic
29
29
  'All Controller Actions'
30
30
  end
31
31
  end
32
-
32
+
33
33
  def url
34
34
  '/' + segments[1..-1].join('/')
35
35
  end
@@ -2,14 +2,14 @@
2
2
  # This is just temporary until we switchover to WebTransaction from Controller.
3
3
 
4
4
  NewRelic::MetricParser::Controller.class_eval do
5
-
5
+
6
6
  def initialize(name)
7
7
  super
8
8
  if %w[Sinatra Rack Task].include?(segment_1)
9
9
  self.extend NewRelic::MetricParser::WebTransaction.const_get(segment_1)
10
10
  end
11
11
  end
12
-
12
+
13
13
  # default to v2 Web Transactions tab
14
14
  def drilldown_url(metric_id)
15
15
  {:controller => '/v2/transactions', :action => 'index', :anchor => "id=#{metric_id}"}
@@ -1,22 +1,22 @@
1
1
  class NewRelic::MetricParser::Database < NewRelic::MetricParser::MetricParser
2
2
  def is_database?; true; end
3
-
3
+
4
4
  def database
5
5
  segments[1]
6
6
  end
7
-
7
+
8
8
  def operation
9
9
  op = segments.last
10
10
  case
11
11
  when op == 'Join Table Columns'
12
- op.upcase
12
+ op.upcase
13
13
  when op == 'all'
14
14
  op
15
15
  else
16
16
  op.split(' ').last.upcase
17
17
  end
18
18
  end
19
-
19
+
20
20
  def developer_name
21
21
  if segments.size == 3
22
22
  "#{database} - #{operation}"
@@ -24,15 +24,15 @@ class NewRelic::MetricParser::Database < NewRelic::MetricParser::MetricParser
24
24
  operation
25
25
  end
26
26
  end
27
-
27
+
28
28
  def legend_name
29
- if all?
29
+ if all?
30
30
  'Database'
31
31
  else
32
32
  super
33
33
  end
34
34
  end
35
-
35
+
36
36
  def tooltip_name
37
37
  if all?
38
38
  'all SQL execution'
@@ -40,7 +40,7 @@ class NewRelic::MetricParser::Database < NewRelic::MetricParser::MetricParser
40
40
  super
41
41
  end
42
42
  end
43
-
43
+
44
44
  private
45
45
  def all?
46
46
  name == 'Database/all' || name == 'Database/allWeb' || name == 'Database/allOther'
@@ -1,5 +1,5 @@
1
1
  class NewRelic::MetricParser::DatabasePool < NewRelic::MetricParser::MetricParser
2
-
2
+
3
3
  def developer_name
4
4
  segs = segments
5
5
  if segs.length > 3
@@ -8,7 +8,7 @@ class NewRelic::MetricParser::DatabasePool < NewRelic::MetricParser::MetricParse
8
8
  name
9
9
  end
10
10
  end
11
-
11
+
12
12
  def pie_chart_label
13
13
  short_name
14
14
  end
@@ -16,7 +16,7 @@ class NewRelic::MetricParser::DatabasePool < NewRelic::MetricParser::MetricParse
16
16
  def tooltip_name
17
17
  developer_name + " " + last_segment
18
18
  end
19
-
19
+
20
20
  # class name with/out package name and method name
21
21
  def short_name
22
22
  developer_name
@@ -1,14 +1,14 @@
1
- require 'new_relic/metric_parser/dot_net_parser'
1
+ require 'new_relic/metric_parser/dot_net_parser'
2
2
 
3
3
  class NewRelic::MetricParser::DotNet < NewRelic::MetricParser::MetricParser
4
-
4
+
5
5
  def initialize(name)
6
- super
6
+ super
7
7
  if segments.length > 2
8
8
  self.extend DotNetParser
9
9
  end
10
10
  end
11
-
11
+
12
12
  def pie_chart_label
13
13
  short_name
14
14
  end
@@ -16,11 +16,11 @@ class NewRelic::MetricParser::DotNet < NewRelic::MetricParser::MetricParser
16
16
  def tooltip_name
17
17
  developer_name
18
18
  end
19
-
19
+
20
20
  def full_class_name
21
21
  segment_1
22
22
  end
23
-
23
+
24
24
  def method_name
25
25
  segment_2
26
26
  end