scout_apm 3.0.0.pre7 → 3.0.0.pre8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 622bc9489b9add4f80ca65cd3b12e54e30eea269
4
- data.tar.gz: ef00b8380eb4e163cf9b991b826287d63ba27819
3
+ metadata.gz: 63c9b4319eecbefb59fdb10fb0fbc0d264dfb7a0
4
+ data.tar.gz: 821271be9ef95416e72b659a825895513d80017d
5
5
  SHA512:
6
- metadata.gz: 2057aaca2029567dd1a7ce09fb8b359cc2819566e0a03ef528f91b051e00170be7fef66dfe339186bc77d030c7e738be2bc3517b8306e874ce38c662988c46a2
7
- data.tar.gz: 4e45127ed587dd0e86782d357f1916de915acff6698682f2b6920448ba63245a5412549d27efe7fff1e270b8bfc0e57d36cc7273ae94f1af4f83a348b525b9aa
6
+ metadata.gz: 330d8721be955d8676285665d7db211919b1867da0720b1b24c663119f434cb7aaffa9a55cec27d8286633d40d924b337283fea0c45195d872900f54a3c6c041
7
+ data.tar.gz: 0eef9b024471d03e689aaceffd56402c32a5f0904e6c9124209bb60e4d06173f281fc25b3562225303b5c8292be7daab2f5233618a098454c646da597d4913fa
data/CHANGELOG.markdown CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  * ScoutProf BETA
4
4
 
5
+ # 2.1.19
6
+
7
+ * Log all configuration settings at start when log level is debug
8
+ * Tune DelayedJob class name detection
9
+
5
10
  # 2.1.18
6
11
 
7
12
  * Max layaway file threshold limit
@@ -118,6 +118,8 @@ module ScoutApm
118
118
  init_logger
119
119
  logger.info "Attempting to start Scout Agent [#{ScoutApm::VERSION}] on [#{environment.hostname}]"
120
120
 
121
+ @config.log_settings
122
+
121
123
  @ignored_uris = ScoutApm::IgnoredUris.new(config.value('ignore'))
122
124
 
123
125
  load_instruments if should_load_instruments?(options)
@@ -2,6 +2,7 @@ module ScoutApm
2
2
  module BackgroundJobIntegrations
3
3
  class DelayedJob
4
4
  ACTIVE_JOB_KLASS = 'ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper'.freeze
5
+ DJ_PERFORMABLE_METHOD = 'Delayed::PerformableMethod'.freeze
5
6
 
6
7
  attr_reader :logger
7
8
 
@@ -26,14 +27,27 @@ module ScoutApm
26
27
  ScoutApm::Agent.instance.start_background_worker unless ScoutApm::Agent.instance.background_worker_running?
27
28
 
28
29
  name = begin
29
- if job.payload_object.class.to_s == ACTIVE_JOB_KLASS
30
+ case job.payload_object.class.to_s
31
+
32
+ # ActiveJob's class wraps the actual job class
33
+ when ACTIVE_JOB_KLASS
30
34
  job.payload_object.job_data["job_class"]
31
- else
35
+
36
+ # An adhoc job, called like `@user.delay.fib(10)`.
37
+ # returns a string like "User#fib"
38
+ when DJ_PERFORMABLE_METHOD
32
39
  job.name
40
+
41
+ # A "real" job called like `Delayed::Job.enqueue(MyJob.new)`
42
+ # returns "MyJob"
43
+ else
44
+ job.payload_object.class.to_s
33
45
  end
34
46
  rescue
47
+ # Fall back to whatever DJ thinks the name is.
35
48
  job.name
36
49
  end
50
+
37
51
  queue = job.queue || "default"
38
52
 
39
53
  req = ScoutApm::RequestManager.lookup
@@ -165,12 +165,17 @@ module ScoutApm
165
165
  @overlays = Array(overlays)
166
166
  end
167
167
 
168
+ # For a given key, what is the first overlay says that it can handle it?
169
+ def overlay_for_key(key)
170
+ @overlays.detect{ |overlay| overlay.has_key?(key) }
171
+ end
172
+
168
173
  def value(key)
169
174
  if ! KNOWN_CONFIG_OPTIONS.include?(key)
170
175
  ScoutApm::Agent.instance.logger.debug("Requested looking up a unknown configuration key: #{key} (not a problem. Evaluate and add to config.rb)")
171
176
  end
172
177
 
173
- o = @overlays.detect{ |overlay| overlay.has_key?(key) }
178
+ o = overlay_for_key(key)
174
179
  raw_value = if o
175
180
  o.value(key)
176
181
  else
@@ -187,6 +192,14 @@ module ScoutApm
187
192
  @overlays.any? { |overlay| overlay.any_keys_found? }
188
193
  end
189
194
 
195
+ def log_settings
196
+ messages = KNOWN_CONFIG_OPTIONS.inject([]) do |memo, key|
197
+ o = overlay_for_key(key)
198
+ memo << "#{o.name} - #{key}: #{value(key).inspect}"
199
+ end
200
+ ScoutApm::Agent.instance.logger.debug("Resolved Setting Values:\n" + messages.join("\n"))
201
+ end
202
+
190
203
  class ConfigDefaults
191
204
  DEFAULTS = {
192
205
  'compress_payload' => true,
@@ -214,6 +227,10 @@ module ScoutApm
214
227
  def any_keys_found?
215
228
  false
216
229
  end
230
+
231
+ def name
232
+ "defaults"
233
+ end
217
234
  end
218
235
 
219
236
 
@@ -232,6 +249,10 @@ module ScoutApm
232
249
  def any_keys_found?
233
250
  false
234
251
  end
252
+
253
+ def name
254
+ "no-config"
255
+ end
235
256
  end
236
257
 
237
258
  class ConfigEnvironment
@@ -253,6 +274,10 @@ module ScoutApm
253
274
  ENV.has_key?(key_to_env_key(option))
254
275
  }
255
276
  end
277
+
278
+ def name
279
+ "environment"
280
+ end
256
281
  end
257
282
 
258
283
  # Attempts to load a configuration file, and parse it as YAML. If the file
@@ -284,6 +309,10 @@ module ScoutApm
284
309
  }
285
310
  end
286
311
 
312
+ def name
313
+ "config-file"
314
+ end
315
+
287
316
  private
288
317
 
289
318
  def load_file(file)
@@ -1,3 +1,3 @@
1
1
  module ScoutApm
2
- VERSION = "3.0.0.pre7"
2
+ VERSION = "3.0.0.pre8"
3
3
  end
@@ -32,7 +32,7 @@ class ConfigTest < Minitest::Test
32
32
  conf = ScoutApm::Config.with_file(conf_file, environment: "staging")
33
33
 
34
34
  assert_equal "info", conf.value('log_level') # the default value
35
- assert_equal nil, conf.value('name') # the default value
35
+ assert_nil nil, conf.value('name') # the default value
36
36
  end
37
37
 
38
38
  def test_boolean_coercion
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.pre7
4
+ version: 3.0.0.pre8
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: 2016-12-21 00:00:00.000000000 Z
12
+ date: 2016-12-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -292,8 +292,34 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
292
  version: 1.3.1
293
293
  requirements: []
294
294
  rubyforge_project: scout_apm
295
- rubygems_version: 2.2.2
295
+ rubygems_version: 2.5.2
296
296
  signing_key:
297
297
  specification_version: 4
298
298
  summary: Ruby application performance monitoring
299
- test_files: []
299
+ test_files:
300
+ - test/data/config_test_1.yml
301
+ - test/test_helper.rb
302
+ - test/unit/agent_test.rb
303
+ - test/unit/background_job_integrations/sidekiq_test.rb
304
+ - test/unit/config_test.rb
305
+ - test/unit/context_test.rb
306
+ - test/unit/environment_test.rb
307
+ - test/unit/git_revision_test.rb
308
+ - test/unit/histogram_test.rb
309
+ - test/unit/ignored_uris_test.rb
310
+ - test/unit/instruments/active_record_instruments_test.rb
311
+ - test/unit/instruments/net_http_test.rb
312
+ - test/unit/instruments/percentile_sampler_test.rb
313
+ - test/unit/layaway_test.rb
314
+ - test/unit/layer_children_set_test.rb
315
+ - test/unit/limited_layer_test.rb
316
+ - test/unit/metric_set_test.rb
317
+ - test/unit/scored_item_set_test.rb
318
+ - test/unit/serializers/payload_serializer_test.rb
319
+ - test/unit/slow_job_policy_test.rb
320
+ - test/unit/slow_request_policy_test.rb
321
+ - test/unit/sql_sanitizer_test.rb
322
+ - test/unit/store_test.rb
323
+ - test/unit/utils/active_record_metric_name_test.rb
324
+ - test/unit/utils/backtrace_parser_test.rb
325
+ - test/unit/utils/numbers_test.rb