scout_apm 2.4.20 → 2.4.21
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 +7 -0
- data/README.markdown +6 -0
- data/lib/scout_apm/agent.rb +7 -4
- data/lib/scout_apm/config.rb +12 -7
- data/lib/scout_apm/instruments/action_controller_rails_2.rb +3 -1
- data/lib/scout_apm/instruments/action_controller_rails_3_rails4.rb +5 -2
- data/lib/scout_apm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7414d9bde0f829ed4cfc7975c5bdca2e5cda5910
|
|
4
|
+
data.tar.gz: 6a0ab71bfa23362adefb328f69a887bae5551b6b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 99e1906e5273202785cbd6c75acc4a833887f1a27240e7763b16d7296d1b4ba30a080729b67214372de08170c06541869b94c0d825726822be305ab05d12651b
|
|
7
|
+
data.tar.gz: 8f44f8874f66b75ac8e1146678a7c91964661422b9e3386eccc0bca115269d9874403dc042cfc771da48552636a23e33c219a0648400615e8fbbf49027117b86
|
data/CHANGELOG.markdown
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# 2.4.21
|
|
2
|
+
|
|
3
|
+
* App & Background Integrations only install when needed (#228)
|
|
4
|
+
* New Setting `collect_remote_ip`, to optionally disable automated capture of
|
|
5
|
+
end-user IP Address. No change to default behavior.
|
|
6
|
+
* Allow setting `compress_payload` option from ENV var (#234)
|
|
7
|
+
|
|
1
8
|
# 2.4.20
|
|
2
9
|
|
|
3
10
|
* `start_resque_server_instrument` option to allow disabling the WEBrick server
|
data/README.markdown
CHANGED
|
@@ -55,6 +55,12 @@ gem 'scout_apm'
|
|
|
55
55
|
SCOUT_DEV_TRACE=true rails server
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
## How to test gem locally
|
|
59
|
+
|
|
60
|
+
* Point your gemfile at your local checkout: `gem 'scout_apm', path: '/path/to/scout_apm_ruby`
|
|
61
|
+
* Compile native code: `cd /path/to/scout_apm_ruby && bundle exec rake compile`
|
|
62
|
+
|
|
63
|
+
|
|
58
64
|
## Docs
|
|
59
65
|
|
|
60
66
|
For the complete list of supported frameworks, Rubies, configuration options
|
data/lib/scout_apm/agent.rb
CHANGED
|
@@ -37,10 +37,13 @@ module ScoutApm
|
|
|
37
37
|
|
|
38
38
|
logger.info "Scout Agent [#{ScoutApm::VERSION}] Initialized"
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
if should_load_instruments? || force
|
|
41
|
+
instrument_manager.install!
|
|
42
|
+
install_background_job_integrations
|
|
43
|
+
install_app_server_integration
|
|
44
|
+
else
|
|
45
|
+
logger.info "Not Loading Instruments"
|
|
46
|
+
end
|
|
44
47
|
|
|
45
48
|
logger.info "Scout Agent [#{ScoutApm::VERSION}] Installed"
|
|
46
49
|
|
data/lib/scout_apm/config.rb
CHANGED
|
@@ -10,6 +10,7 @@ require 'scout_apm/environment'
|
|
|
10
10
|
# customer-focused documentation.
|
|
11
11
|
#
|
|
12
12
|
# application_root - override the detected directory of the application
|
|
13
|
+
# collect_remote_ip - automatically capture user's IP into a Trace's Context
|
|
13
14
|
# compress_payload - true/false to enable gzipping of payload
|
|
14
15
|
# data_file - override the default temporary storage location. Must be a location in a writable directory
|
|
15
16
|
# dev_trace - true or false. Enables always-on tracing in development environmen only
|
|
@@ -40,6 +41,7 @@ module ScoutApm
|
|
|
40
41
|
KNOWN_CONFIG_OPTIONS = [
|
|
41
42
|
'application_root',
|
|
42
43
|
'async_recording',
|
|
44
|
+
'collect_remote_ip',
|
|
43
45
|
'compress_payload',
|
|
44
46
|
'config_file',
|
|
45
47
|
'data_file',
|
|
@@ -151,13 +153,15 @@ module ScoutApm
|
|
|
151
153
|
|
|
152
154
|
|
|
153
155
|
SETTING_COERCIONS = {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
156
|
+
'async_recording' => BooleanCoercion.new,
|
|
157
|
+
'detailed_middleware' => BooleanCoercion.new,
|
|
158
|
+
'dev_trace' => BooleanCoercion.new,
|
|
159
|
+
'enable_background_jobs' => BooleanCoercion.new,
|
|
160
|
+
'ignore' => JsonCoercion.new,
|
|
161
|
+
'max_traces' => IntegerCoercion.new,
|
|
162
|
+
'monitor' => BooleanCoercion.new,
|
|
163
|
+
'collect_remote_ip' => BooleanCoercion.new,
|
|
164
|
+
'compress_payload' => BooleanCoercion.new,
|
|
161
165
|
'database_metric_limit' => IntegerCoercion.new,
|
|
162
166
|
'database_metric_report_limit' => IntegerCoercion.new,
|
|
163
167
|
'instrument_http_url_length' => IntegerCoercion.new,
|
|
@@ -268,6 +272,7 @@ module ScoutApm
|
|
|
268
272
|
'database_metric_report_limit' => 1000,
|
|
269
273
|
'instrument_http_url_length' => 300,
|
|
270
274
|
'start_resque_server_instrument' => true, # still only starts if Resque is detected
|
|
275
|
+
'collect_remote_ip' => true,
|
|
271
276
|
}.freeze
|
|
272
277
|
|
|
273
278
|
def value(key)
|
|
@@ -54,7 +54,9 @@ module ScoutApm
|
|
|
54
54
|
def perform_action_with_scout_instruments(*args, &block)
|
|
55
55
|
req = ScoutApm::RequestManager.lookup
|
|
56
56
|
req.annotate_request(:uri => request.path) # for security by-default, we don't use request.fullpath which could reveal filtered params.
|
|
57
|
-
|
|
57
|
+
if ScoutApm::Agent.instance.context.config.value('collect_remote_ip')
|
|
58
|
+
req.context.add_user(:ip => request.remote_ip)
|
|
59
|
+
end
|
|
58
60
|
req.set_headers(request.headers)
|
|
59
61
|
req.start_layer( ScoutApm::Layer.new("Controller", "#{controller_path}/#{action_name}") )
|
|
60
62
|
|
|
@@ -60,10 +60,11 @@ module ScoutApm
|
|
|
60
60
|
def process_action(*args)
|
|
61
61
|
req = ScoutApm::RequestManager.lookup
|
|
62
62
|
current_layer = req.current_layer
|
|
63
|
+
agent_context = ScoutApm::Agent.instance.context
|
|
63
64
|
|
|
64
65
|
# Check if this this request is to be reported instantly
|
|
65
66
|
if instant_key = request.cookies['scoutapminstant']
|
|
66
|
-
|
|
67
|
+
agent_context.logger.info "Instant trace request with key=#{instant_key} for path=#{path}"
|
|
67
68
|
req.instant_key = instant_key
|
|
68
69
|
end
|
|
69
70
|
|
|
@@ -74,7 +75,9 @@ module ScoutApm
|
|
|
74
75
|
req.annotate_request(:uri => ScoutApm::Instruments::ActionControllerRails3Rails4.scout_transaction_uri(request))
|
|
75
76
|
|
|
76
77
|
# IP Spoofing Protection can throw an exception, just move on w/o remote ip
|
|
77
|
-
|
|
78
|
+
if agent_context.config.value('collect_remote_ip')
|
|
79
|
+
req.context.add_user(:ip => request.remote_ip) rescue nil
|
|
80
|
+
end
|
|
78
81
|
req.set_headers(request.headers)
|
|
79
82
|
|
|
80
83
|
resolved_name = scout_action_name(*args)
|
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: 2.4.
|
|
4
|
+
version: 2.4.21
|
|
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-
|
|
12
|
+
date: 2018-11-28 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: minitest
|