newrelic_rpm 3.14.0.305 → 3.14.1.311

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +55 -3
  3. data/lib/new_relic/agent/agent.rb +1 -0
  4. data/lib/new_relic/agent/configuration/default_source.rb +25 -2
  5. data/lib/new_relic/agent/error_collector.rb +2 -1
  6. data/lib/new_relic/agent/error_event_aggregator.rb +10 -7
  7. data/lib/new_relic/agent/hostname.rb +1 -1
  8. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +82 -4
  9. data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +5 -4
  10. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +24 -4
  11. data/lib/new_relic/agent/instrumentation/rack.rb +80 -29
  12. data/lib/new_relic/agent/pipe_service.rb +4 -0
  13. data/lib/new_relic/agent/transaction.rb +5 -0
  14. data/lib/new_relic/version.rb +1 -1
  15. data/test/multiverse/suites/agent_only/agent_attributes_test.rb +15 -0
  16. data/test/multiverse/suites/agent_only/error_events_test.rb +15 -1
  17. data/test/multiverse/suites/delayed_job/Envfile +10 -0
  18. data/test/multiverse/suites/delayed_job/before_suite.rb +10 -0
  19. data/test/multiverse/suites/delayed_job/delayed_job_instrumentation_test.rb +106 -0
  20. data/test/multiverse/suites/mongo/mongo2_instrumentation_test.rb +45 -0
  21. data/test/multiverse/suites/rack/Envfile +10 -0
  22. data/test/multiverse/suites/rack/before_suite.rb +12 -0
  23. data/test/multiverse/suites/rack/http_response_code_test.rb +2 -2
  24. data/test/multiverse/suites/rack/puma_rack_builder_test.rb +81 -0
  25. data/test/multiverse/suites/rack/rack_auto_instrumentation_test.rb +12 -3
  26. data/test/multiverse/suites/rack/rack_cascade_test.rb +31 -31
  27. data/test/multiverse/suites/rack/rack_env_mutation_test.rb +2 -2
  28. data/test/multiverse/suites/rack/rack_unsupported_version_test.rb +1 -1
  29. data/test/multiverse/suites/rack/response_content_type_test.rb +2 -2
  30. data/test/multiverse/suites/rack/url_map_test.rb +45 -11
  31. data/test/new_relic/agent/agent/connect_test.rb +1 -1
  32. data/test/new_relic/agent/agent_logger_test.rb +2 -0
  33. data/test/new_relic/agent/agent_test.rb +1 -0
  34. data/test/new_relic/agent/audit_logger_test.rb +4 -0
  35. data/test/new_relic/agent/error_collector_test.rb +34 -10
  36. data/test/new_relic/agent/error_event_aggregator_test.rb +12 -1
  37. data/test/new_relic/agent/hostname_test.rb +5 -0
  38. data/test/new_relic/agent/instrumentation/delayed_job_instrumentation_test.rb +23 -0
  39. data/test/new_relic/agent/pipe_service_test.rb +7 -0
  40. data/test/new_relic/marshalling_test_cases.rb +42 -0
  41. metadata +6 -2
@@ -63,6 +63,13 @@ class PipeServiceTest < Minitest::Test
63
63
  assert_equal ['err'], received_data[:error_data]
64
64
  end
65
65
 
66
+ def test_error_event_data
67
+ received_data = data_from_forked_process do
68
+ @service.error_event_data(['err_ev'])
69
+ end
70
+ assert_equal ['err_ev'], received_data[:error_event_data]
71
+ end
72
+
66
73
  def test_sql_trace_data
67
74
  received_data = data_from_forked_process do
68
75
  @service.sql_trace_data(['sql'])
@@ -107,6 +107,41 @@ module MarshallingTestCases
107
107
  assert_equal(expected_event, events.first)
108
108
  end
109
109
 
110
+ def test_sends_error_events
111
+ t0 = freeze_time(Time.at(Time.now.to_i))
112
+
113
+ with_around_hook do
114
+ Transactioner.new.break_it
115
+ end
116
+
117
+ transmit_data
118
+
119
+ result = $collector.calls_for('error_event_data')
120
+
121
+ assert_equal 1, result.length
122
+ events = result.first.error_events
123
+ assert_equal 1, events.length
124
+
125
+ expected_event = [
126
+ {
127
+ "type" => "TransactionError",
128
+ "error.class" => "StandardError",
129
+ "error.message" => "Sorry!",
130
+ "timestamp" => t0.to_f,
131
+ "transactionName" => "TestTransaction/break_it",
132
+ "duration" => 0.0
133
+ },
134
+ {},
135
+ {}
136
+ ]
137
+
138
+ event = events.first
139
+ # this is only present on REE, and we don't really care - the point of this
140
+ # test is just to validate basic marshalling
141
+ event[0].delete("gcCumulative")
142
+ assert_equal(expected_event, event)
143
+ end
144
+
110
145
  class Transactioner
111
146
  include NewRelic::Agent::Instrumentation::ControllerInstrumentation
112
147
 
@@ -115,6 +150,13 @@ module MarshallingTestCases
115
150
  end
116
151
 
117
152
  add_transaction_tracer :do_it
153
+
154
+ def break_it
155
+ NewRelic::Agent.set_transaction_name("break_it", :category => "TestTransaction")
156
+ NewRelic::Agent.notice_error StandardError.new("Sorry!")
157
+ end
158
+
159
+ add_transaction_tracer :break_it
118
160
  end
119
161
 
120
162
  def with_around_hook(&blk)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.14.0.305
4
+ version: 3.14.1.311
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Krajcar
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-10-14 00:00:00.000000000 Z
14
+ date: 2015-12-04 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
@@ -813,6 +813,7 @@ files:
813
813
  - test/multiverse/suites/delayed_job/Envfile
814
814
  - test/multiverse/suites/delayed_job/before_suite.rb
815
815
  - test/multiverse/suites/delayed_job/config/newrelic.yml
816
+ - test/multiverse/suites/delayed_job/delayed_job_instrumentation_test.rb
816
817
  - test/multiverse/suites/delayed_job/delayed_job_sampler_test.rb
817
818
  - test/multiverse/suites/delayed_job/unsupported_backend_test.rb
818
819
  - test/multiverse/suites/excon/Envfile
@@ -863,10 +864,12 @@ files:
863
864
  - test/multiverse/suites/padrino/config/newrelic.yml
864
865
  - test/multiverse/suites/padrino/padrino_test.rb
865
866
  - test/multiverse/suites/rack/Envfile
867
+ - test/multiverse/suites/rack/before_suite.rb
866
868
  - test/multiverse/suites/rack/builder_map_test.rb
867
869
  - test/multiverse/suites/rack/example_app.rb
868
870
  - test/multiverse/suites/rack/http_response_code_test.rb
869
871
  - test/multiverse/suites/rack/nested_non_rack_app_test.rb
872
+ - test/multiverse/suites/rack/puma_rack_builder_test.rb
870
873
  - test/multiverse/suites/rack/rack_auto_instrumentation_test.rb
871
874
  - test/multiverse/suites/rack/rack_cascade_test.rb
872
875
  - test/multiverse/suites/rack/rack_env_mutation_test.rb
@@ -1028,6 +1031,7 @@ files:
1028
1031
  - test/new_relic/agent/instrumentation/active_record_helper_test.rb
1029
1032
  - test/new_relic/agent/instrumentation/active_record_subscriber_test.rb
1030
1033
  - test/new_relic/agent/instrumentation/controller_instrumentation_test.rb
1034
+ - test/new_relic/agent/instrumentation/delayed_job_instrumentation_test.rb
1031
1035
  - test/new_relic/agent/instrumentation/instrumentation_test.rb
1032
1036
  - test/new_relic/agent/instrumentation/metric_frame_test.rb
1033
1037
  - test/new_relic/agent/instrumentation/middleware_proxy_test.rb