newrelic_moped 0.0.6 → 0.0.7

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