newrelic_moped 0.0.6 → 0.0.7

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 11f781738f1a0471b0064169ea5be12b65c8a3bd
4
+ data.tar.gz: bc01d2c8555297998f01294b61ff5a894fe6ca14
5
+ SHA512:
6
+ metadata.gz: 3e189d0dd91a1acc4eb25f5d9dc7580e6a959c6ce7017df887eb1cf4229a284fa4093d67d315c40c542ad0e19f08e4b4af073cd4a34077c3beade334dce067c5
7
+ data.tar.gz: 048d01ed8f931009c177c1137e3012f5df426c3df7d80bb141732d6bb8748344aee74dbe0bd65512eea767d2a01102e9d4de1c1fe32936f24448518ac964d713
data/README.md CHANGED
@@ -16,6 +16,10 @@ Or install it yourself as:
16
16
 
17
17
  $ gem install newrelic_moped
18
18
 
19
+ ## News
20
+
21
+ There's no official place for news & updates yet but you can follow @sbartholomew on Twitter for announcements.
22
+
19
23
  ## Contributing
20
24
 
21
25
  1. Fork it
@@ -1,3 +1,4 @@
1
+ require 'new_relic/agent/instrumentation/active_record_helper'
1
2
  require 'new_relic/agent/method_tracer'
2
3
 
3
4
  DependencyDetection.defer do
@@ -13,7 +14,7 @@ DependencyDetection.defer do
13
14
 
14
15
  executes do
15
16
  Moped::Node.class_eval do
16
- include NewRelic::Moped::Instrumentation
17
+ include NewRelic::Agent::Instrumentation::Moped
17
18
  alias_method :logging_without_newrelic_trace, :logging
18
19
  alias_method :logging, :logging_with_newrelic_trace
19
20
  end
@@ -21,59 +22,63 @@ DependencyDetection.defer do
21
22
  end
22
23
 
23
24
  module NewRelic
24
- module Moped
25
+ module Agent
25
26
  module Instrumentation
26
- def logging_with_newrelic_trace(operations, &blk)
27
- operation_name, collection = determine_operation_and_collection(operations.first)
28
- log_statement = operations.first.log_inspect.encode("UTF-8")
27
+ module Moped
28
+ def logging_with_newrelic_trace(operations, &blk)
29
+ operation_name, collection = determine_operation_and_collection(operations.first)
30
+ log_statement = operations.first.log_inspect.encode("UTF-8")
29
31
 
30
- metric = case operation_name
31
- when 'INSERT', 'UPDATE', 'CREATE' then 'save'
32
- when 'QUERY' then 'find'
33
- when 'DELETE' then 'destroy'
34
- else
35
- nil
36
- end
32
+ operation = case operation_name
33
+ when 'INSERT', 'UPDATE', 'CREATE' then 'save'
34
+ when 'QUERY', 'COUNT' then 'find'
35
+ when 'DELETE' then 'destroy'
36
+ else
37
+ nil
38
+ end
37
39
 
38
- command = Proc.new { logging_without_newrelic_trace(operations, &blk) }
39
- res = nil
40
-
41
- if metric
42
- metrics = ["ActiveRecord/all", "ActiveRecord/#{collection}/#{metric}"]
40
+ command = Proc.new { logging_without_newrelic_trace(operations, &blk) }
41
+ res = nil
43
42
 
44
- self.class.trace_execution_scoped(metrics) do
45
- t0 = Time.now
46
- begin
47
- res = command.call
48
- ensure
49
- elapsed_time = (Time.now - t0).to_f
43
+ if operation
44
+ metric = "ActiveRecord/#{collection}/#{operation}"
45
+ metrics = [metric] + ActiveRecordHelper.rollup_metrics_for(metric)
46
+ self.class.trace_execution_scoped(metrics) do
47
+ t0 = Time.now
48
+ begin
49
+ res = command.call
50
+ ensure
51
+ elapsed_time = (Time.now - t0).to_f
50
52
 
51
- NewRelic::Agent.instance.transaction_sampler.notice_sql(log_statement, nil, elapsed_time)
52
- NewRelic::Agent.instance.sql_sampler.notice_sql(log_statement, metric, nil, elapsed_time)
53
+ NewRelic::Agent.instance.transaction_sampler.notice_sql(log_statement, nil, elapsed_time)
54
+ NewRelic::Agent.instance.sql_sampler.notice_sql(log_statement, metric, nil, elapsed_time)
55
+ NewRelic::Agent.instance.stats_engine.record_metrics(metrics, elapsed_time)
56
+ end
53
57
  end
54
- end
55
- else
56
- res = command.call
57
- end
58
58
 
59
- res
60
- end
59
+ else
60
+ res = command.call
61
+ end
61
62
 
62
- def determine_operation_and_collection(operation)
63
- log_statement = operation.log_inspect.encode("UTF-8")
64
- collection = "Unknown"
65
- if operation.respond_to?(:collection)
66
- collection = operation.collection
63
+ res
67
64
  end
68
- operation_name = log_statement.split[0]
69
- if operation_name == 'COMMAND' && log_statement.include?(":mapreduce")
70
- operation_name = 'MAPREDUCE'
71
- collection = log_statement[/:mapreduce=>"([^"]+)/,1]
72
- elsif operation_name == 'COMMAND' && log_statement.include?(":count")
73
- operation_name = 'COUNT'
74
- collection = log_statement[/:count=>"([^"]+)/,1]
65
+
66
+ def determine_operation_and_collection(operation)
67
+ log_statement = operation.log_inspect.encode("UTF-8")
68
+ collection = "Unknown"
69
+ if operation.respond_to?(:collection)
70
+ collection = operation.collection
71
+ end
72
+ operation_name = log_statement.split[0]
73
+ if operation_name == 'COMMAND' && log_statement.include?(":mapreduce")
74
+ operation_name = 'MAPREDUCE'
75
+ collection = log_statement[/:mapreduce=>"([^"]+)/,1]
76
+ elsif operation_name == 'COMMAND' && log_statement.include?(":count")
77
+ operation_name = 'COUNT'
78
+ collection = log_statement[/:count=>"([^"]+)/,1]
79
+ end
80
+ return operation_name, collection
75
81
  end
76
- return operation_name, collection
77
82
  end
78
83
  end
79
84
  end
@@ -1,3 +1,3 @@
1
1
  module NewrelicMoped
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_moped
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.0.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Stephen Bartholomew
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-28 00:00:00.000000000 Z
11
+ date: 2014-01-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: newrelic_rpm
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 3.6.0
19
+ version: 3.7.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: 3.6.0
26
+ version: 3.7.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: moped
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: New Relic Instrumentation for Moped & Mongoid 3
@@ -71,29 +64,29 @@ files:
71
64
  - lib/newrelic_moped.rb
72
65
  - LICENSE
73
66
  - README.md
74
- homepage: ''
75
- licenses: []
67
+ homepage: https://github.com/stevebartholomew/newrelic_moped
68
+ licenses:
69
+ - MIT
70
+ metadata: {}
76
71
  post_install_message:
77
72
  rdoc_options: []
78
73
  require_paths:
79
74
  - lib
80
75
  required_ruby_version: !ruby/object:Gem::Requirement
81
- none: false
82
76
  requirements:
83
- - - ! '>='
77
+ - - '>='
84
78
  - !ruby/object:Gem::Version
85
79
  version: '0'
86
80
  required_rubygems_version: !ruby/object:Gem::Requirement
87
- none: false
88
81
  requirements:
89
- - - ! '>='
82
+ - - '>='
90
83
  - !ruby/object:Gem::Version
91
84
  version: '0'
92
85
  requirements: []
93
86
  rubyforge_project:
94
- rubygems_version: 1.8.23
87
+ rubygems_version: 2.1.11
95
88
  signing_key:
96
- specification_version: 3
89
+ specification_version: 4
97
90
  summary: New Relic Instrumentation for Moped & Mongoid 3
98
91
  test_files: []
99
92
  has_rdoc: