oneapm_rpm 1.1.2 → 1.1.3
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 +4 -4
- data/lib/one_apm/agent.rb +185 -192
- data/lib/one_apm/agent/agent/connect.rb +17 -17
- data/lib/one_apm/agent/agent/container_data_manager.rb +14 -14
- data/lib/one_apm/agent/agent/forkable_dispatcher_functions.rb +6 -35
- data/lib/one_apm/agent/agent/helpers.rb +6 -17
- data/lib/one_apm/agent/agent/start.rb +27 -27
- data/lib/one_apm/agent/agent/start_worker_thread.rb +19 -51
- data/lib/one_apm/agent/busy_calculator.rb +8 -34
- data/lib/one_apm/agent/cross_app/cross_app_monitor.rb +10 -10
- data/lib/one_apm/agent/cross_app/cross_app_tracing.rb +14 -14
- data/lib/one_apm/agent/database.rb +8 -35
- data/lib/one_apm/agent/database/active_record_helper.rb +1 -1
- data/lib/one_apm/agent/datastores.rb +2 -109
- data/lib/one_apm/agent/datastores/metric_helper.rb +1 -1
- data/lib/one_apm/agent/datastores/mongo/metric_translator.rb +3 -3
- data/lib/one_apm/agent/datastores/mongo/statement_formatter.rb +2 -2
- data/lib/one_apm/agent/harvester.rb +3 -6
- data/lib/one_apm/agent/inbound_request_monitor.rb +2 -2
- data/lib/one_apm/agent/javascript_instrumentor.rb +28 -28
- data/lib/one_apm/agent/sampler.rb +1 -1
- data/lib/one_apm/agent/sampler_collection.rb +6 -9
- data/lib/one_apm/agent/samplers/cpu_sampler.rb +4 -4
- data/lib/one_apm/agent/samplers/delayed_job_sampler.rb +5 -5
- data/lib/one_apm/agent/samplers/memory_sampler.rb +5 -5
- data/lib/one_apm/agent/samplers/object_sampler.rb +1 -1
- data/lib/one_apm/agent/samplers/vm_sampler.rb +6 -6
- data/lib/one_apm/agent/synthetics_monitor.rb +2 -2
- data/lib/one_apm/agent/threading/agent_thread.rb +6 -6
- data/lib/one_apm/agent/threading/backtrace_service.rb +9 -9
- data/lib/one_apm/agent/threading/thread_profile.rb +3 -3
- data/lib/one_apm/collector/collector/helper.rb +10 -10
- data/lib/one_apm/collector/collector/http_connection.rb +14 -14
- data/lib/one_apm/collector/collector/server_methods.rb +12 -12
- data/lib/one_apm/collector/collector_service.rb +8 -8
- data/lib/one_apm/collector/commands/thread_profiler_session.rb +4 -4
- data/lib/one_apm/collector/commands/xray_session.rb +1 -1
- data/lib/one_apm/collector/commands/xray_session_collection.rb +10 -10
- data/lib/one_apm/collector/containers/agent_command_router.rb +7 -7
- data/lib/one_apm/collector/containers/custom_event_aggregator.rb +6 -6
- data/lib/one_apm/collector/containers/error_collector.rb +16 -16
- data/lib/one_apm/collector/containers/sql_sampler.rb +8 -11
- data/lib/one_apm/collector/containers/transaction_event_aggregator.rb +15 -15
- data/lib/one_apm/collector/containers/transaction_sampler.rb +14 -16
- data/lib/one_apm/{agent/pipe/pipe_service.rb → collector/forked_process_service.rb} +3 -3
- data/lib/one_apm/collector/stats_engine/gc_profiler.rb +3 -3
- data/lib/one_apm/collector/stats_engine/metric_stats.rb +4 -4
- data/lib/one_apm/collector/stats_engine/stats_hash.rb +2 -2
- data/lib/one_apm/configuration.rb +16 -16
- data/lib/one_apm/configuration/autostart.rb +4 -4
- data/lib/one_apm/configuration/default_source.rb +9 -9
- data/lib/one_apm/configuration/environment_source.rb +1 -1
- data/lib/one_apm/configuration/high_security_source.rb +1 -1
- data/lib/one_apm/configuration/yaml_source.rb +7 -7
- data/lib/one_apm/errors/noticed_error.rb +2 -2
- data/lib/one_apm/frameworks/external.rb +2 -0
- data/lib/one_apm/frameworks/rails.rb +8 -18
- data/lib/one_apm/frameworks/rails3.rb +1 -0
- data/lib/one_apm/frameworks/rails4.rb +2 -6
- data/lib/one_apm/frameworks/ruby.rb +7 -2
- data/lib/one_apm/frameworks/sinatra.rb +1 -2
- data/lib/one_apm/inst/3rd/active_merchant.rb +1 -1
- data/lib/one_apm/inst/3rd/acts_as_solr.rb +2 -2
- data/lib/one_apm/inst/3rd/authlogic.rb +1 -1
- data/lib/one_apm/inst/3rd/sunspot.rb +1 -1
- data/lib/one_apm/inst/background_job/active_job.rb +1 -1
- data/lib/one_apm/inst/background_job/delayed_job.rb +4 -4
- data/lib/one_apm/inst/background_job/event_machine_standalone.rb +2 -2
- data/lib/one_apm/inst/background_job/resque.rb +11 -11
- data/lib/one_apm/inst/background_job/sidekiq.rb +5 -5
- data/lib/one_apm/inst/dispatcher/passenger.rb +4 -4
- data/lib/one_apm/inst/dispatcher/puma.rb +23 -0
- data/lib/one_apm/inst/dispatcher/rainbows.rb +2 -2
- data/lib/one_apm/inst/framework/grape.rb +4 -4
- data/lib/one_apm/inst/framework/padrino.rb +2 -2
- data/lib/one_apm/inst/framework/sinatra.rb +9 -9
- data/lib/one_apm/inst/framework/sinatra/transaction_namer.rb +1 -1
- data/lib/one_apm/inst/http_clients/curb.rb +6 -6
- data/lib/one_apm/inst/http_clients/excon.rb +4 -4
- data/lib/one_apm/inst/http_clients/excon/middleware.rb +3 -3
- data/lib/one_apm/inst/http_clients/httpclient.rb +1 -1
- data/lib/one_apm/inst/http_clients/net.rb +2 -2
- data/lib/one_apm/inst/http_clients/typhoeus.rb +2 -2
- data/lib/one_apm/inst/nosql/memcache.rb +7 -7
- data/lib/one_apm/inst/nosql/mongo.rb +6 -6
- data/lib/one_apm/inst/nosql/mongo_moped.rb +2 -2
- data/lib/one_apm/inst/nosql/redis.rb +3 -3
- data/lib/one_apm/inst/orm/active_record.rb +4 -4
- data/lib/one_apm/inst/orm/active_record_4.rb +2 -2
- data/lib/one_apm/inst/orm/sequel.rb +4 -4
- data/lib/one_apm/inst/rack.rb +3 -3
- data/lib/one_apm/inst/rack/rack_builder.rb +4 -4
- data/lib/one_apm/inst/rails/action_controller.rb +7 -7
- data/lib/one_apm/inst/rails/action_web_service.rb +1 -1
- data/lib/one_apm/inst/rails/errors.rb +1 -1
- data/lib/one_apm/inst/rails3/action_controller.rb +6 -6
- data/lib/one_apm/inst/rails3/errors.rb +1 -1
- data/lib/one_apm/inst/rails4/action_controller.rb +1 -1
- data/lib/one_apm/inst/rails4/action_controller_subscriber.rb +4 -4
- data/lib/one_apm/inst/rails4/action_view.rb +2 -2
- data/lib/one_apm/inst/rails4/action_view_subscriber.rb +4 -4
- data/lib/one_apm/inst/rails4/active_record_subscriber.rb +7 -7
- data/lib/one_apm/inst/rails4/errors.rb +1 -1
- data/lib/one_apm/inst/rails_middleware.rb +2 -2
- data/lib/one_apm/inst/support/evented_subscriber.rb +2 -2
- data/lib/one_apm/inst/support/queue_time.rb +1 -1
- data/lib/one_apm/inst/transaction_base.rb +6 -6
- data/lib/one_apm/logger/agent_logger.rb +8 -8
- data/lib/one_apm/logger/audit_logger.rb +8 -8
- data/lib/one_apm/logger/memory_logger.rb +1 -1
- data/lib/one_apm/logger/null_logger.rb +1 -3
- data/lib/one_apm/manager.rb +249 -0
- data/lib/one_apm/metrics/metric_spec.rb +1 -1
- data/lib/one_apm/metrics/stats.rb +1 -1
- data/lib/one_apm/probe.rb +1 -1
- data/lib/one_apm/probe/framework_loader.rb +2 -2
- data/lib/one_apm/probe/instance_methods.rb +19 -19
- data/lib/one_apm/probe/instrumentation.rb +5 -5
- data/lib/one_apm/rack/browser_monitoring.rb +6 -6
- data/lib/one_apm/rack/middleware_hooks.rb +1 -1
- data/lib/one_apm/rack/middleware_tracing.rb +2 -2
- data/lib/one_apm/support/chained_call.rb +1 -1
- data/lib/one_apm/support/coerce.rb +1 -1
- data/lib/one_apm/support/collection_helper.rb +1 -1
- data/lib/one_apm/support/encoders.rb +1 -1
- data/lib/one_apm/support/environment_report.rb +10 -10
- data/lib/one_apm/{agent → support}/event/event_listener.rb +3 -3
- data/lib/one_apm/{agent → support}/event/event_loop.rb +8 -8
- data/lib/one_apm/{agent → support}/event/timer.rb +1 -1
- data/lib/one_apm/{agent → support}/event/worker_loop.rb +5 -19
- data/lib/one_apm/{agent/pipe/pipe_channel_manager.rb → support/forked_process_channel.rb} +13 -51
- data/lib/one_apm/support/json_marshaller.rb +6 -6
- data/lib/one_apm/support/json_wrapper.rb +2 -2
- data/lib/one_apm/support/language_support.rb +1 -1
- data/lib/one_apm/support/library_detection.rb +5 -5
- data/lib/one_apm/support/marshaller.rb +1 -1
- data/lib/one_apm/support/method_tracer.rb +12 -12
- data/lib/one_apm/support/method_tracer/helpers.rb +6 -6
- data/lib/one_apm/support/system_info.rb +2 -2
- data/lib/one_apm/support/traced_method_stack.rb +4 -4
- data/lib/one_apm/support/vm/monotonic_gc_profiler.rb +1 -1
- data/lib/one_apm/support/vm/mri_vm.rb +1 -1
- data/lib/one_apm/transaction.rb +3 -3
- data/lib/one_apm/transaction/class_methods.rb +3 -3
- data/lib/one_apm/transaction/instance_helpers.rb +3 -3
- data/lib/one_apm/transaction/sample_buffer/synthetics_sample_buffer.rb +1 -1
- data/lib/one_apm/transaction/sample_buffer/xray_sample_buffer.rb +5 -5
- data/lib/one_apm/transaction/thread_local_access.rb +2 -2
- data/lib/one_apm/transaction/transaction_apdex.rb +2 -2
- data/lib/one_apm/transaction/transaction_finish_append.rb +1 -1
- data/lib/one_apm/transaction/transaction_jruby_functions.rb +2 -2
- data/lib/one_apm/transaction/transaction_name.rb +2 -2
- data/lib/one_apm/transaction/transaction_sample.rb +1 -1
- data/lib/one_apm/transaction/transaction_sample_builder.rb +7 -7
- data/lib/one_apm/transaction/transaction_state.rb +1 -1
- data/lib/one_apm/version.rb +1 -1
- data/lib/sequel/extensions/oneapm_instrumentation.rb +7 -7
- data/oneapm.yml +6 -7
- metadata +10 -9
- data/lib/one_apm/agent/agent.rb +0 -283
@@ -25,8 +25,8 @@ module OneApm
|
|
25
25
|
@backend_name = :json
|
26
26
|
return true
|
27
27
|
rescue StandardError, ScriptError
|
28
|
-
OneApm::
|
29
|
-
defined?( OneApm::Agent ) && OneApm::
|
28
|
+
OneApm::Manager.logger.debug "%p while loading JSON library: %s" % [ err, err.message ] if
|
29
|
+
defined?( OneApm::Agent ) && OneApm::Manager.respond_to?( :logger )
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -71,7 +71,7 @@ module OneApm::LanguageSupport
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def gc_profiler_enabled?
|
74
|
-
if gc_profiler_usable? && ::GC::Profiler.enabled? &&
|
74
|
+
if gc_profiler_usable? && ::GC::Profiler.enabled? && !OneApm::Manager.config[:disable_gc_profiler]
|
75
75
|
true
|
76
76
|
else
|
77
77
|
false
|
@@ -13,7 +13,7 @@ module LibraryDetection
|
|
13
13
|
if item.name
|
14
14
|
seen_names = @items.map { |i| i.name }.compact
|
15
15
|
if seen_names.include?(item.name)
|
16
|
-
OneApm::
|
16
|
+
OneApm::Manager.logger.warn("Refusing to re-register LibraryDetection block with name '#{item.name}'")
|
17
17
|
return @items
|
18
18
|
end
|
19
19
|
end
|
@@ -70,7 +70,7 @@ module LibraryDetection
|
|
70
70
|
begin
|
71
71
|
x.call
|
72
72
|
rescue => err
|
73
|
-
OneApm::
|
73
|
+
OneApm::Manager.logger.error( "Error while installing #{self.name} instrumentation:", err )
|
74
74
|
break
|
75
75
|
end
|
76
76
|
end
|
@@ -85,7 +85,7 @@ module LibraryDetection
|
|
85
85
|
begin
|
86
86
|
dep.call
|
87
87
|
rescue => err
|
88
|
-
OneApm::
|
88
|
+
OneApm::Manager.logger.error( "Error while detecting #{self.name}:", err )
|
89
89
|
false
|
90
90
|
end
|
91
91
|
end
|
@@ -100,8 +100,8 @@ module LibraryDetection
|
|
100
100
|
return true if self.name.nil?
|
101
101
|
|
102
102
|
key = "disable_#{self.name}".to_sym
|
103
|
-
if (
|
104
|
-
|
103
|
+
if (OneApm::Manager.config[key] == true)
|
104
|
+
OneApm::Manager.logger.debug("Not installing #{self.name} instrumentation because of configuration #{key}")
|
105
105
|
false
|
106
106
|
else
|
107
107
|
true
|
@@ -61,7 +61,7 @@ module OneApm
|
|
61
61
|
#
|
62
62
|
# @api public
|
63
63
|
#
|
64
|
-
def trace_execution_scoped(metric_names, options={})
|
64
|
+
def trace_execution_scoped(metric_names, options={})
|
65
65
|
OneApm::Support::MethodTracer::Helpers.trace_execution_scoped(metric_names, options) do
|
66
66
|
# Using an implicit block avoids object allocation for a &block param
|
67
67
|
yield
|
@@ -76,14 +76,14 @@ module OneApm
|
|
76
76
|
#
|
77
77
|
# @api public
|
78
78
|
#
|
79
|
-
def trace_execution_unscoped(metric_names, options={})
|
80
|
-
return yield unless OneApm::
|
79
|
+
def trace_execution_unscoped(metric_names, options={})
|
80
|
+
return yield unless OneApm::Manager.tl_is_execution_traced?
|
81
81
|
t0 = Time.now
|
82
82
|
begin
|
83
83
|
yield
|
84
84
|
ensure
|
85
85
|
duration = (Time.now - t0).to_f # for some reason this is 3 usec faster than Time - Time
|
86
|
-
OneApm::
|
86
|
+
OneApm::Manager.agent.stats_engine.tl_record_unscoped_metrics(metric_names, duration)
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -110,7 +110,7 @@ module OneApm
|
|
110
110
|
end
|
111
111
|
|
112
112
|
if deprecated_keys.any?
|
113
|
-
OneApm::
|
113
|
+
OneApm::Manager.logger.warn("Deprecated options when adding method tracer to #{method_name}: "+
|
114
114
|
deprecated_keys.join(', '))
|
115
115
|
end
|
116
116
|
end
|
@@ -153,7 +153,7 @@ module OneApm
|
|
153
153
|
# anything if the method doesn't exist.
|
154
154
|
def oneapm_method_exists?(method_name)
|
155
155
|
exists = method_defined?(method_name) || private_method_defined?(method_name)
|
156
|
-
|
156
|
+
OneApm::Manager.logger.error("Did not trace #{self.name}##{method_name} because that method does not exist") unless exists
|
157
157
|
exists
|
158
158
|
end
|
159
159
|
|
@@ -163,7 +163,7 @@ module OneApm
|
|
163
163
|
# to help with debugging custom instrumentation.
|
164
164
|
def traced_method_exists?(method_name, metric_name_code)
|
165
165
|
exists = method_defined?(_traced_method_name(method_name, metric_name_code))
|
166
|
-
|
166
|
+
OneApm::Manager.logger.error("Attempt to trace a method twice with the same metric: Method = #{method_name}, Metric Name = #{metric_name_code}") if exists
|
167
167
|
exists
|
168
168
|
end
|
169
169
|
|
@@ -172,7 +172,7 @@ module OneApm
|
|
172
172
|
# instrumentation into effectively one method call overhead
|
173
173
|
# when the agent is disabled
|
174
174
|
def assemble_code_header(method_name, metric_name_code, options)
|
175
|
-
header = "return #{_untraced_method_name(method_name, metric_name_code)}(*args, &block) unless OneApm::
|
175
|
+
header = "return #{_untraced_method_name(method_name, metric_name_code)}(*args, &block) unless OneApm::Manager.tl_is_execution_traced?\n"
|
176
176
|
header += options[:code_header].to_s
|
177
177
|
header
|
178
178
|
end
|
@@ -188,7 +188,7 @@ module OneApm
|
|
188
188
|
#{_untraced_method_name(method_name, metric_name_code)}(*args, &block)\n
|
189
189
|
ensure
|
190
190
|
duration = (Time.now - t0).to_f
|
191
|
-
OneApm::
|
191
|
+
OneApm::Manager.record_metric(\"#{metric_name_code}\", duration)
|
192
192
|
#{options[:code_footer]}
|
193
193
|
end
|
194
194
|
end"
|
@@ -296,7 +296,7 @@ module OneApm
|
|
296
296
|
alias_method method_name, _traced_method_name(method_name, metric_name_code)
|
297
297
|
send visibility, method_name
|
298
298
|
send visibility, _traced_method_name(method_name, metric_name_code)
|
299
|
-
|
299
|
+
OneApm::Manager.logger.debug("Traced method: class = #{self.name},"+
|
300
300
|
"method = #{method_name}, "+
|
301
301
|
"metric = '#{metric_name_code}'")
|
302
302
|
end
|
@@ -305,11 +305,11 @@ module OneApm
|
|
305
305
|
# from when they were added, or else other tracers that were added to the same method
|
306
306
|
# may get removed as well.
|
307
307
|
def remove_method_tracer(method_name, metric_name_code) # :nodoc:
|
308
|
-
return unless
|
308
|
+
return unless OneApm::Manager.config[:agent_enabled]
|
309
309
|
if method_defined? "#{_traced_method_name(method_name, metric_name_code)}"
|
310
310
|
alias_method method_name, "#{_untraced_method_name(method_name, metric_name_code)}"
|
311
311
|
undef_method "#{_traced_method_name(method_name, metric_name_code)}"
|
312
|
-
|
312
|
+
OneApm::Manager.logger.debug("removed method tracer #{method_name} #{metric_name_code}\n")
|
313
313
|
else
|
314
314
|
raise "No tracer for '#{metric_name_code}' on method '#{method_name}'"
|
315
315
|
end
|
@@ -10,7 +10,7 @@ module OneApm
|
|
10
10
|
|
11
11
|
def record_metrics(state, first_name, other_names, duration, exclusive, options)
|
12
12
|
record_scoped_metric = options.has_key?(:scoped_metric) ? options[:scoped_metric] : true
|
13
|
-
stats_engine = OneApm::
|
13
|
+
stats_engine = OneApm::Manager.agent.stats_engine
|
14
14
|
if record_scoped_metric
|
15
15
|
stats_engine.record_scoped_and_unscoped_metrics(state, first_name, other_names, duration, exclusive)
|
16
16
|
else
|
@@ -22,7 +22,7 @@ module OneApm
|
|
22
22
|
def log_errors(code_area)
|
23
23
|
yield
|
24
24
|
rescue => e
|
25
|
-
|
25
|
+
OneApm::Manager.logger.error("Caught exception in #{code_area}.", e)
|
26
26
|
end
|
27
27
|
|
28
28
|
def trace_execution_scoped_header(state, t0)
|
@@ -45,18 +45,18 @@ module OneApm
|
|
45
45
|
exclusive = duration - frame.children_time
|
46
46
|
|
47
47
|
if duration >= MAX_ALLOWED_METRIC_DURATION
|
48
|
-
|
48
|
+
OneApm::Manager.logger.log_once(:warn, "too_huge_metric:#{first_name}",
|
49
49
|
"Ignoring metric #{first_name} with unacceptably large duration: #{duration} s")
|
50
50
|
return
|
51
51
|
end
|
52
52
|
|
53
53
|
if duration < 0
|
54
|
-
|
54
|
+
OneApm::Manager.logger.log_once(:warn, "metric_duration_negative:#{first_name}",
|
55
55
|
"Metric #{first_name} has negative duration: #{duration} s")
|
56
56
|
end
|
57
57
|
|
58
58
|
if exclusive < 0
|
59
|
-
|
59
|
+
OneApm::Manager.logger.log_once(:warn, "metric_exclusive_negative:#{first_name}",
|
60
60
|
"Metric #{first_name} has negative exclusive time: duration = #{duration} s, child_time = #{frame.children_time}")
|
61
61
|
end
|
62
62
|
|
@@ -64,7 +64,7 @@ module OneApm
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
def trace_execution_scoped(metric_names, options={})
|
67
|
+
def trace_execution_scoped(metric_names, options={})
|
68
68
|
state = OneApm::TransactionState.tl_get
|
69
69
|
return yield unless state.is_execution_traced?
|
70
70
|
|
@@ -125,7 +125,7 @@ module OneApm
|
|
125
125
|
processor_count = get_processor_info[:num_logical_processors]
|
126
126
|
|
127
127
|
if processor_count.nil?
|
128
|
-
OneApm::
|
128
|
+
OneApm::Manager.logger.warn("Failed to determine processor count, assuming 1")
|
129
129
|
processor_count = 1
|
130
130
|
end
|
131
131
|
|
@@ -164,7 +164,7 @@ module OneApm
|
|
164
164
|
when '/' then nil
|
165
165
|
# in a cgroup, but we don't recognize its format
|
166
166
|
else
|
167
|
-
|
167
|
+
OneApm::Manager.logger.debug("Ignoring unrecognized cgroup ID format: '#{cpu_cgroup}'")
|
168
168
|
nil
|
169
169
|
end
|
170
170
|
end
|
@@ -62,8 +62,8 @@ module OneApm
|
|
62
62
|
if frame == expected_frame
|
63
63
|
return frame
|
64
64
|
else
|
65
|
-
OneApm::
|
66
|
-
OneApm::
|
65
|
+
OneApm::Manager.logger.info("Unexpected frame in traced method stack: #{frame.inspect} expected to be #{expected_frame.inspect}")
|
66
|
+
OneApm::Manager.logger.debug do
|
67
67
|
["Backtrace for unexpected frame: ", caller.join("\n")]
|
68
68
|
end
|
69
69
|
end
|
@@ -83,11 +83,11 @@ module OneApm
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def sampler_enabled?
|
86
|
-
|
86
|
+
OneApm::Manager.config[:'transaction_tracer.enabled']
|
87
87
|
end
|
88
88
|
|
89
89
|
def transaction_sampler
|
90
|
-
|
90
|
+
OneApm::Manager.agent.transaction_sampler
|
91
91
|
end
|
92
92
|
|
93
93
|
def clear
|
data/lib/one_apm/transaction.rb
CHANGED
@@ -202,7 +202,7 @@ module OneApm
|
|
202
202
|
if value < OneApm::Support::MethodTracer::Helpers::MAX_ALLOWED_METRIC_DURATION
|
203
203
|
@metrics.record_unscoped(QUEUE_TIME_METRIC, value)
|
204
204
|
else
|
205
|
-
|
205
|
+
OneApm::Manager.logger.log_once(:warn, :too_high_queue_time, "Not recording unreasonably large queue time of #{value} s")
|
206
206
|
end
|
207
207
|
end
|
208
208
|
end
|
@@ -240,7 +240,7 @@ module OneApm
|
|
240
240
|
|
241
241
|
def user_defined_rules_ignore?
|
242
242
|
return unless uri
|
243
|
-
return if (rules = OneApm::
|
243
|
+
return if (rules = OneApm::Manager.config[:"rules.ignore_url_regexes"]).empty?
|
244
244
|
|
245
245
|
parsed = OneApm::Support::HTTPClients::URIUtil.parse_url(uri)
|
246
246
|
filtered_uri = OneApm::Support::HTTPClients::URIUtil.filter_uri(parsed)
|
@@ -249,7 +249,7 @@ module OneApm
|
|
249
249
|
filtered_uri.match(rule)
|
250
250
|
end
|
251
251
|
rescue URI::InvalidURIError => e
|
252
|
-
OneApm::
|
252
|
+
OneApm::Manager.logger.debug("Error parsing URI: #{uri}", e)
|
253
253
|
false
|
254
254
|
end
|
255
255
|
|
@@ -24,7 +24,7 @@ module OneApm
|
|
24
24
|
|
25
25
|
txn
|
26
26
|
rescue => e
|
27
|
-
OneApm::
|
27
|
+
OneApm::Manager.logger.error("Exception during Transaction.start", e)
|
28
28
|
nil
|
29
29
|
end
|
30
30
|
|
@@ -32,7 +32,7 @@ module OneApm
|
|
32
32
|
txn = state.current_transaction
|
33
33
|
|
34
34
|
if txn.nil?
|
35
|
-
OneApm::
|
35
|
+
OneApm::Manager.logger.error(Transaction::FAILED_TO_STOP_MESSAGE)
|
36
36
|
return
|
37
37
|
end
|
38
38
|
|
@@ -63,7 +63,7 @@ module OneApm
|
|
63
63
|
:transaction_stopped
|
64
64
|
rescue => e
|
65
65
|
state.reset
|
66
|
-
OneApm::
|
66
|
+
OneApm::Manager.logger.error("Exception during Transaction.stop", e)
|
67
67
|
nil
|
68
68
|
end
|
69
69
|
|
@@ -5,7 +5,7 @@ module OneApm
|
|
5
5
|
module InstanceHelpers
|
6
6
|
|
7
7
|
def agent
|
8
|
-
OneApm::
|
8
|
+
OneApm::Manager.agent
|
9
9
|
end
|
10
10
|
|
11
11
|
def transaction_sampler
|
@@ -43,8 +43,8 @@ module OneApm
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def add_custom_parameters(p)
|
46
|
-
if OneApm::
|
47
|
-
OneApm::
|
46
|
+
if OneApm::Manager.config[:high_security]
|
47
|
+
OneApm::Manager.logger.debug("Unable to add custom attributes #{p.keys.inspect} while in high security mode.")
|
48
48
|
return
|
49
49
|
end
|
50
50
|
|
@@ -12,19 +12,19 @@ module OneApm
|
|
12
12
|
super
|
13
13
|
|
14
14
|
# Memoize the config setting since this happens per request
|
15
|
-
@enabled = OneApm::
|
16
|
-
OneApm::
|
15
|
+
@enabled = OneApm::Manager.config[:'xray_session.allow_traces']
|
16
|
+
OneApm::Manager.config.register_callback(:'xray_session.allow_traces') do |new_value|
|
17
17
|
@enabled = new_value
|
18
18
|
end
|
19
19
|
|
20
|
-
@capacity = OneApm::
|
21
|
-
OneApm::
|
20
|
+
@capacity = OneApm::Manager.config[:'xray_session.max_samples']
|
21
|
+
OneApm::Manager.config.register_callback(:'xray_session.max_samples') do |new_value|
|
22
22
|
@capacity = new_value
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def xray_session_collection
|
27
|
-
@xray_session_collection ||= OneApm::
|
27
|
+
@xray_session_collection ||= OneApm::Manager.agent.agent_command_router.xray_session_collection
|
28
28
|
end
|
29
29
|
|
30
30
|
def capacity
|
@@ -27,7 +27,7 @@ module OneApm
|
|
27
27
|
|
28
28
|
# Indicate that you don't want to keep the currently saved transaction
|
29
29
|
# information
|
30
|
-
def abort_transaction!
|
30
|
+
def abort_transaction!
|
31
31
|
state = OneApm::TransactionState.tl_get
|
32
32
|
txn = state.current_transaction
|
33
33
|
txn.abort_transaction!(state) if txn
|
@@ -50,7 +50,7 @@ module OneApm
|
|
50
50
|
if txn
|
51
51
|
txn.notice_error(e, options)
|
52
52
|
else
|
53
|
-
OneApm::
|
53
|
+
OneApm::Manager.agent.error_collector.notice_error(e, options)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -8,12 +8,12 @@ module OneApm
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def apdex_t
|
11
|
-
transaction_specific_apdex_t ||
|
11
|
+
transaction_specific_apdex_t || OneApm::Manager.config[:apdex_t]
|
12
12
|
end
|
13
13
|
|
14
14
|
def transaction_specific_apdex_t
|
15
15
|
key = :web_transactions_apdex
|
16
|
-
|
16
|
+
OneApm::Manager.config[key] && OneApm::Manager.config[key][best_name]
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
@@ -40,7 +40,7 @@ module OneApm
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def append_referring_transaction_guid_to(state, payload)
|
43
|
-
referring_guid = OneApm::
|
43
|
+
referring_guid = OneApm::Manager.agent.cross_app_monitor.client_referring_transaction_guid(state)
|
44
44
|
if referring_guid
|
45
45
|
payload[:referring_transaction_guid] = referring_guid
|
46
46
|
end
|
@@ -26,8 +26,8 @@ module OneApm
|
|
26
26
|
|
27
27
|
-1 == java_utime ? 0.0 : java_utime/1e9
|
28
28
|
rescue => e
|
29
|
-
|
30
|
-
|
29
|
+
OneApm::Manager.logger.log_once(:warn, :jruby_cpu_time, JRUBY_CPU_TIME_ERROR, e)
|
30
|
+
OneApm::Manager.logger.debug(JRUBY_CPU_TIME_ERROR, e)
|
31
31
|
nil
|
32
32
|
end
|
33
33
|
|
@@ -37,7 +37,7 @@ module OneApm
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def log_frozen_name(name)
|
40
|
-
OneApm::
|
40
|
+
OneApm::Manager.logger.warn("Attempted to rename transaction to '#{name}' after transaction name was already frozen as '#{@frozen_name}'.")
|
41
41
|
nil
|
42
42
|
end
|
43
43
|
|
@@ -65,7 +65,7 @@ module OneApm
|
|
65
65
|
def freeze_name_and_execute_if_not_ignored
|
66
66
|
if !name_frozen?
|
67
67
|
name = promoted_transaction_name(best_name)
|
68
|
-
name = OneApm::
|
68
|
+
name = OneApm::Manager.agent.transaction_rules.rename(name)
|
69
69
|
@name_frozen = true
|
70
70
|
|
71
71
|
if name.nil?
|