scout_apm 2.6.2 → 2.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfac08a037b046a0775634ea7ba351a9e3310c3eb4ea3bedd0571bead3984379
4
- data.tar.gz: 4218e6a354d14dfc920cf34f86dd556c25e2fe8be04f78d43963ea00ad7ec9a9
3
+ metadata.gz: 6a0344ecd846204d2b4057246c9719ebf4453a1c240847e54357a75cecda39b6
4
+ data.tar.gz: 55b8b4c379fee7e5f8275bde73f27fa7d9e1e16b560c70207e51e4225e45184c
5
5
  SHA512:
6
- metadata.gz: 87aa046c482068c6bd85c14fa9550796099fb6517fd17eeb10888f61d6ccd4ed724e51deb57c6c9598d556f5f7f48a4faed4457d4c2c0e6d4eaf97c66e4004df
7
- data.tar.gz: ac15c172111160f119c56cae0bdd6494704b481bb02a22a97cd5d373fafa3e5d747039c412b3bc50cf0e1f293b0c32542fbbd8a2547cdbbaf918898f5c382901
6
+ metadata.gz: 45cd0a3dc5b6632a980a38324e6c933d2552eb33aa32e1e9e9da74e5a6b848b5bdb694c27f017502c6a437dd6576486d8186ccbea8ae3c5563b8778bac158870
7
+ data.tar.gz: d20753a142c71ef03a47608bcae15acdb2aeec11e5f7f75c78ece78657ac828b077af15c152b4e1aac92eb81f98e6a7b211db1aa35349cd8746a37ae76089b25
data/CHANGELOG.markdown CHANGED
@@ -1,3 +1,9 @@
1
+ # 2.6.3
2
+
3
+ * Standardize Metadata with other language agents (#302)
4
+ * Add Mongoid 7.x support (#295)
5
+ * Add HTTP::Client support (#260)
6
+
1
7
  # 2.6.2
2
8
 
3
9
  * Fix Autoinstruments logging when running without ActiveSupport (#290)
@@ -29,12 +29,17 @@ module ScoutApm
29
29
  end
30
30
 
31
31
  def data
32
- { :server_time => to_s_safe(Time.now),
32
+ {
33
+ :language => 'ruby',
34
+ :language_version => RUBY_VERSION,
35
+ :ruby_version => RUBY_VERSION, # Deprecated.
36
+
33
37
  :framework => to_s_safe(environment.framework_integration.human_name),
34
38
  :framework_version => to_s_safe(environment.framework_integration.version),
39
+
40
+ :server_time => to_s_safe(Time.now),
35
41
  :environment => to_s_safe(environment.framework_integration.env),
36
42
  :app_server => to_s_safe(environment.app_server),
37
- :ruby_version => RUBY_VERSION,
38
43
  :hostname => to_s_safe(environment.hostname),
39
44
  :database_engine => to_s_safe(environment.database_engine), # Detected
40
45
  :database_adapter => to_s_safe(environment.raw_database_adapter), # Raw
@@ -0,0 +1,48 @@
1
+ module ScoutApm
2
+ module Instruments
3
+ class HTTP
4
+ attr_reader :context
5
+
6
+ def initialize(context)
7
+ @context = context
8
+ @installed = false
9
+ end
10
+
11
+ def logger
12
+ context.logger
13
+ end
14
+
15
+ def installed?
16
+ @installed
17
+ end
18
+
19
+ def install
20
+ if defined?(::HTTP) && defined?(::HTTP::Client)
21
+ @installed = true
22
+
23
+ logger.info "Instrumenting HTTP::Client"
24
+
25
+ ::HTTP::Client.class_eval do
26
+ include ScoutApm::Tracer
27
+
28
+ def request_with_scout_instruments(verb, uri, opts = {})
29
+ self.class.instrument("HTTP", verb, :ignore_children => true, :desc => request_scout_description(verb, uri)) do
30
+ request_without_scout_instruments(verb, uri, opts)
31
+ end
32
+ end
33
+
34
+ def request_scout_description(verb, uri)
35
+ max_length = ScoutApm::Agent.instance.context.config.value('instrument_http_url_length')
36
+ (String(uri).split('?').first)[0..(max_length - 1)]
37
+ rescue
38
+ ""
39
+ end
40
+
41
+ alias request_without_scout_instruments request
42
+ alias request request_with_scout_instruments
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -37,8 +37,8 @@ module ScoutApm
37
37
  ### See moped instrument for Moped driven deploys
38
38
 
39
39
  ### 5.x Mongoid
40
- if (mongoid_v5? || mongoid_v6?) && defined?(::Mongoid::Contextual::Mongo)
41
- logger.info "Instrumenting Mongoid 5.x/6.x"
40
+ if (mongoid_v5? || mongoid_v6? || mongoid_v7?) && defined?(::Mongoid::Contextual::Mongo)
41
+ logger.info "Instrumenting Mongoid 5.x/6.x/7.x"
42
42
  # All the public methods from Mongoid::Contextual::Mongo.
43
43
  # TODO: Geo and MapReduce support (?). They are in other Contextual::* classes
44
44
  methods = [
@@ -54,8 +54,6 @@ module ScoutApm
54
54
  if ::Mongoid::Contextual::Mongo.method_defined?(method)
55
55
  with_scout_instruments = %Q[
56
56
  def #{method}_with_scout_instruments(*args, &block)
57
-
58
-
59
57
  req = ScoutApm::RequestManager.lookup
60
58
  *db, collection = view.collection.namespace.split(".")
61
59
 
@@ -112,6 +110,13 @@ module ScoutApm
112
110
  end
113
111
  end
114
112
 
113
+ def mongoid_v7?
114
+ if defined?(::Mongoid::VERSION)
115
+ ::Mongoid::VERSION =~ /\A7/
116
+ else
117
+ false
118
+ end
119
+ end
115
120
 
116
121
  # Example of what a filter looks like: => {"founded"=>{"$gte"=>"1980-1-1"}, "name"=>{"$in"=>["Tool", "Deftones", "Melvins"]}}
117
122
  # Approach: find every leaf-node, clear it. inspect the whole thing when done.
@@ -1,3 +1,3 @@
1
1
  module ScoutApm
2
- VERSION = "2.6.2"
2
+ VERSION = "2.6.3"
3
3
  end
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.6.2
4
+ version: 2.6.3
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: 2019-10-04 00:00:00.000000000 Z
12
+ date: 2019-10-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -287,6 +287,7 @@ files:
287
287
  - lib/scout_apm/instruments/active_record.rb
288
288
  - lib/scout_apm/instruments/elasticsearch.rb
289
289
  - lib/scout_apm/instruments/grape.rb
290
+ - lib/scout_apm/instruments/http.rb
290
291
  - lib/scout_apm/instruments/http_client.rb
291
292
  - lib/scout_apm/instruments/influxdb.rb
292
293
  - lib/scout_apm/instruments/memcached.rb