scout_apm 3.0.0.pre17 → 3.0.0.pre18
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/CHANGELOG.markdown +6 -0
- data/lib/scout_apm/agent.rb +8 -3
- data/lib/scout_apm/agent/preconditions.rb +23 -23
- data/lib/scout_apm/agent_context.rb +2 -2
- data/lib/scout_apm/instruments/net_http.rb +1 -1
- data/lib/scout_apm/remote/server.rb +1 -1
- data/lib/scout_apm/version.rb +1 -1
- metadata +4 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbd90a42f996c3061f49d47dab8030bd68da59bd
|
4
|
+
data.tar.gz: 05dd5875bc492ce4e8bcca1f590c20b0c39a7f03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62b89c1e2b9220e5e3e3f5ae008e2b858deaafce0b5119eff73ade0dd3b5c5f1447092057605819314dfef7fffd755b3e4a646b11ee5858e4ecaac090f6e2183
|
7
|
+
data.tar.gz: 9fc7f24849744a01258da4e8927e1bc0804d42b6dcb5d5b467a33042e7c89df245d8b67b75a2c03cb91d02a93a9b6566e6e3b1a5d2d006e90e77a5768209ff6f
|
data/CHANGELOG.markdown
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
* ScoutProf BETA
|
4
4
|
|
5
|
+
# 2.4.4
|
6
|
+
|
7
|
+
* Prevent agent from starting when monitor=false
|
8
|
+
* Fix double-counting of HTTP requests when multiple http libraries are present
|
9
|
+
* Fix an issue with Resque instrumentation
|
10
|
+
|
5
11
|
# 2.4.3
|
6
12
|
|
7
13
|
* Ensure a startup hook runs on forking webservers
|
data/lib/scout_apm/agent.rb
CHANGED
@@ -47,7 +47,8 @@ module ScoutApm
|
|
47
47
|
|
48
48
|
context.installed!
|
49
49
|
|
50
|
-
|
50
|
+
@preconditions = ScoutApm::Agent::Preconditions.new
|
51
|
+
if @preconditions.check?(context) || force
|
51
52
|
start
|
52
53
|
end
|
53
54
|
end
|
@@ -55,8 +56,12 @@ module ScoutApm
|
|
55
56
|
# Unconditionally starts the agent. This includes verifying instruments are
|
56
57
|
# installed, and starting the background worker.
|
57
58
|
#
|
58
|
-
#
|
59
|
-
|
59
|
+
# The monitor precondition is checked explicitly, and we will *never* start with monitor = false
|
60
|
+
#
|
61
|
+
# This does not attempt to start twice
|
62
|
+
def start(opts={})
|
63
|
+
return unless context.config.value('monitor')
|
64
|
+
|
60
65
|
if context.started?
|
61
66
|
start_background_worker unless background_worker_running?
|
62
67
|
return
|
@@ -22,7 +22,12 @@ module ScoutApm
|
|
22
22
|
|
23
23
|
PRECONDITION_DETECTED_SERVER = {
|
24
24
|
:message => proc {|environ| "Deferring agent start. Standing by for first request" },
|
25
|
-
:check => proc { |context|
|
25
|
+
:check => proc { |context|
|
26
|
+
app_server_missing = !context.environment.app_server_integration(true).found?
|
27
|
+
background_job_missing = context.environment.background_job_integrations.length == 0
|
28
|
+
|
29
|
+
!app_server_missing && !background_job_missing
|
30
|
+
},
|
26
31
|
},
|
27
32
|
|
28
33
|
PRECONDITION_ALREADY_STARTED = {
|
@@ -36,34 +41,29 @@ module ScoutApm
|
|
36
41
|
},
|
37
42
|
]
|
38
43
|
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
44
|
+
def check?(context)
|
45
|
+
@check_result ||=
|
46
|
+
begin
|
47
|
+
failed_preconditions = PRECONDITIONS.inject(Array.new) { |errors, condition|
|
48
|
+
met = condition[:check].call(context)
|
49
|
+
errors << condition[:message].call(context.environment) unless met
|
50
|
+
errors
|
51
|
+
}
|
45
52
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
+
if failed_preconditions.any?
|
54
|
+
failed_preconditions.each {|msg| context.logger.warn(msg) }
|
55
|
+
force? # if forced, return true anyway
|
56
|
+
else
|
57
|
+
# No errors, we met preconditions
|
58
|
+
true
|
59
|
+
end
|
60
|
+
end
|
53
61
|
end
|
54
62
|
|
55
63
|
# XXX: Wire up options here and below in the appserver & bg server detections
|
56
|
-
def
|
64
|
+
def force?
|
57
65
|
false
|
58
66
|
end
|
59
|
-
|
60
|
-
def self.app_server_missing?(context)
|
61
|
-
!context.environment.app_server_integration(true).found? # && !options[:skip_app_server_check]
|
62
|
-
end
|
63
|
-
|
64
|
-
def self.background_job_missing?(context)
|
65
|
-
context.environment.background_job_integrations.length == 0
|
66
|
-
end
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
@@ -52,8 +52,8 @@ module ScoutApm
|
|
52
52
|
# expected to have its accepting webserver up and running
|
53
53
|
def become_remote_client!(host, port)
|
54
54
|
logger.debug("Becoming Remote Agent (reporting to: #{host}:#{port})")
|
55
|
-
recorder = ScoutApm::Remote::Recorder.new(host, port, logger)
|
56
|
-
store = ScoutApm::FakeStore.new
|
55
|
+
@recorder = ScoutApm::Remote::Recorder.new(host, port, logger)
|
56
|
+
@store = ScoutApm::FakeStore.new
|
57
57
|
end
|
58
58
|
|
59
59
|
|
@@ -26,7 +26,7 @@ module ScoutApm
|
|
26
26
|
include ScoutApm::Tracer
|
27
27
|
|
28
28
|
def request_with_scout_instruments(*args,&block)
|
29
|
-
self.class.instrument("HTTP", "request", :desc => request_scout_description(args.first)) do
|
29
|
+
self.class.instrument("HTTP", "request", :ignore_children => true, :desc => request_scout_description(args.first)) do
|
30
30
|
request_without_scout_instruments(*args, &block)
|
31
31
|
end
|
32
32
|
end
|
@@ -41,7 +41,7 @@ module ScoutApm
|
|
41
41
|
|
42
42
|
logger.debug("Remote: Server returned after #start call, thread exiting")
|
43
43
|
rescue => e
|
44
|
-
logger.debug("Remote: Server Exception, #{e}")
|
44
|
+
logger.debug("Remote: Server Exception, #{e},\n#{e.backtrace.join("\n\t")}")
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
data/lib/scout_apm/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scout_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.pre18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Haynes
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-01-
|
12
|
+
date: 2018-01-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -373,46 +373,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
373
373
|
version: 1.3.1
|
374
374
|
requirements: []
|
375
375
|
rubyforge_project: scout_apm
|
376
|
-
rubygems_version: 2.
|
376
|
+
rubygems_version: 2.2.2
|
377
377
|
signing_key:
|
378
378
|
specification_version: 4
|
379
379
|
summary: Ruby application performance monitoring
|
380
|
-
test_files:
|
381
|
-
- test/data/config_test_1.yml
|
382
|
-
- test/test_helper.rb
|
383
|
-
- test/unit/agent_test.rb
|
384
|
-
- test/unit/background_job_integrations/sidekiq_test.rb
|
385
|
-
- test/unit/config_test.rb
|
386
|
-
- test/unit/context_test.rb
|
387
|
-
- test/unit/db_query_metric_set_test.rb
|
388
|
-
- test/unit/db_query_metric_stats_test.rb
|
389
|
-
- test/unit/environment_test.rb
|
390
|
-
- test/unit/fake_store_test.rb
|
391
|
-
- test/unit/git_revision_test.rb
|
392
|
-
- test/unit/histogram_test.rb
|
393
|
-
- test/unit/ignored_uris_test.rb
|
394
|
-
- test/unit/instruments/active_record_instruments_test.rb
|
395
|
-
- test/unit/instruments/net_http_test.rb
|
396
|
-
- test/unit/instruments/percentile_sampler_test.rb
|
397
|
-
- test/unit/layaway_test.rb
|
398
|
-
- test/unit/layer_children_set_test.rb
|
399
|
-
- test/unit/layer_converters/depth_first_walker_test.rb
|
400
|
-
- test/unit/layer_converters/metric_converter_test.rb
|
401
|
-
- test/unit/layer_converters/stubs.rb
|
402
|
-
- test/unit/limited_layer_test.rb
|
403
|
-
- test/unit/logger_test.rb
|
404
|
-
- test/unit/metric_set_test.rb
|
405
|
-
- test/unit/remote/test_message.rb
|
406
|
-
- test/unit/remote/test_router.rb
|
407
|
-
- test/unit/remote/test_server.rb
|
408
|
-
- test/unit/scored_item_set_test.rb
|
409
|
-
- test/unit/serializers/payload_serializer_test.rb
|
410
|
-
- test/unit/slow_job_policy_test.rb
|
411
|
-
- test/unit/slow_request_policy_test.rb
|
412
|
-
- test/unit/sql_sanitizer_test.rb
|
413
|
-
- test/unit/store_test.rb
|
414
|
-
- test/unit/test_tracked_request.rb
|
415
|
-
- test/unit/utils/active_record_metric_name_test.rb
|
416
|
-
- test/unit/utils/backtrace_parser_test.rb
|
417
|
-
- test/unit/utils/numbers_test.rb
|
418
|
-
- test/unit/utils/scm.rb
|
380
|
+
test_files: []
|