scout_apm 2.6.2 → 2.6.3

Sign up to get free protection for your applications and to get access to all the features.
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