traceview 3.7.0-java → 3.7.1-java
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 +4 -4
- data/CHANGELOG.md +11 -0
- data/gemfiles/delayed_job.gemfile +5 -0
- data/gemfiles/frameworks.gemfile +5 -0
- data/gemfiles/libraries.gemfile +8 -5
- data/gemfiles/rails32.gemfile +1 -1
- data/gemfiles/rails42.gemfile +5 -0
- data/lib/oboe_metal.rb +20 -7
- data/lib/traceview/inst/mongo.rb +1 -1
- data/lib/traceview/inst/mongo2.rb +226 -0
- data/lib/traceview/inst/moped.rb +32 -31
- data/lib/traceview/version.rb +1 -1
- data/test/frameworks/rails3x_test.rb +1 -0
- data/test/instrumentation/{mongo_test.rb → mongo_v1_test.rb} +9 -3
- data/test/instrumentation/mongo_v2_index_test.rb +124 -0
- data/test/instrumentation/mongo_v2_test.rb +585 -0
- data/test/instrumentation/mongo_v2_view_test.rb +435 -0
- data/test/instrumentation/moped_test.rb +1 -2
- data/test/minitest_helper.rb +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2764ec8660cc08edd31bca1a668aac0d715a154d
|
4
|
+
data.tar.gz: 21ab2ecfac3fed66c9bf4676f64fa604428095ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9bae84566bf7c44ce85898db7acf37551822723f8b1a6db70a4dd2cb15867e8d763d68d818017ef473b318cfc35656bd26718ce7ba55d4e137a8d08a500c88e
|
7
|
+
data.tar.gz: 426cb37b7a29178ccad0464aa8460a3b9215ba8ba3e22f3c7e0e2ad114115ff088a70a92a827c6eec08077faaa80e7466390dd518e86aff361e6efcbcf70a999
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,17 @@ https://github.com/appneta/oboe-ruby/releases
|
|
4
4
|
|
5
5
|
Dates in this file are in the format MM/DD/YYYY.
|
6
6
|
|
7
|
+
# traceview 3.7.1
|
8
|
+
|
9
|
+
This patch release includes the following fixes:
|
10
|
+
|
11
|
+
* Updated Mongo instrumentation to support v2+: #164
|
12
|
+
|
13
|
+
Pushed to Rubygems:
|
14
|
+
|
15
|
+
https://rubygems.org/gems/traceview/versions/3.7.1
|
16
|
+
https://rubygems.org/gems/traceview/versions/3.7.1-java
|
17
|
+
|
7
18
|
# traceview 3.7.0
|
8
19
|
|
9
20
|
This minor release includes the following new feature:
|
@@ -10,6 +10,11 @@ group :development, :test do
|
|
10
10
|
gem 'bson', '< 4.0'
|
11
11
|
end
|
12
12
|
|
13
|
+
# New mime-types/mime-types-data requires ruby 2.0
|
14
|
+
if RUBY_VERSION < '2.0'
|
15
|
+
gem 'mime-types', '< 3.0'
|
16
|
+
end
|
17
|
+
|
13
18
|
if defined?(JRUBY_VERSION)
|
14
19
|
gem 'sinatra', :require => false
|
15
20
|
gem 'activerecord-jdbc-adapter'
|
data/gemfiles/frameworks.gemfile
CHANGED
data/gemfiles/libraries.gemfile
CHANGED
@@ -17,11 +17,11 @@ group :development, :test do
|
|
17
17
|
gem 'rack-test'
|
18
18
|
if RUBY_VERSION < '1.9.3'
|
19
19
|
gem 'rake', '< 11.0'
|
20
|
-
gem 'bson', '<= 1.12.
|
20
|
+
gem 'bson', '<= 1.12.5'
|
21
21
|
gem 'puma', '< 3.0'
|
22
22
|
else
|
23
23
|
gem 'rake'
|
24
|
-
gem 'bson', '
|
24
|
+
gem 'bson', '~> 3.0'
|
25
25
|
gem 'puma', '< 3.1.0'
|
26
26
|
end
|
27
27
|
end
|
@@ -38,6 +38,12 @@ else
|
|
38
38
|
gem 'bunny'
|
39
39
|
end
|
40
40
|
|
41
|
+
if RUBY_VERSION < '1.9.3'
|
42
|
+
gem 'mongo', '1.12.5'
|
43
|
+
else
|
44
|
+
gem 'mongo', '2.0.6'
|
45
|
+
end
|
46
|
+
|
41
47
|
gem 'cassandra'
|
42
48
|
gem 'curb' unless defined?(JRUBY_VERSION)
|
43
49
|
gem 'dalli' if RUBY_VERSION > '1.8.7'
|
@@ -45,14 +51,12 @@ gem 'excon'
|
|
45
51
|
gem 'faraday'
|
46
52
|
gem 'httpclient'
|
47
53
|
gem 'memcache-client'
|
48
|
-
gem 'mongo'
|
49
54
|
gem 'redis'
|
50
55
|
gem 'resque' unless defined?(JRUBY_VERSION) && RUBY_VERSION > '1.9.3'
|
51
56
|
gem 'sequel'
|
52
57
|
gem "sidekiq" if RUBY_VERSION >= '2.0'
|
53
58
|
gem 'typhoeus'
|
54
59
|
|
55
|
-
|
56
60
|
# Database adapter gems needed by sequel
|
57
61
|
if defined?(JRUBY_VERSION)
|
58
62
|
gem 'jdbc-postgresql'
|
@@ -69,7 +73,6 @@ end
|
|
69
73
|
|
70
74
|
unless defined?(JRUBY_VERSION)
|
71
75
|
gem 'memcached', '1.7.2' if RUBY_VERSION < '2.0.0'
|
72
|
-
gem 'bson_ext' # For Mongo, Yours Truly
|
73
76
|
end
|
74
77
|
|
75
78
|
gemspec :path => File.expand_path(File.dirname(__FILE__) + '/../')
|
data/gemfiles/rails32.gemfile
CHANGED
data/gemfiles/rails42.gemfile
CHANGED
@@ -10,6 +10,11 @@ group :development, :test do
|
|
10
10
|
gem 'bson', '< 4.0'
|
11
11
|
end
|
12
12
|
|
13
|
+
# New mime-types/mime-types-data requires ruby 2.0
|
14
|
+
if RUBY_VERSION < '2.0'
|
15
|
+
gem 'mime-types', '< 3.0'
|
16
|
+
end
|
17
|
+
|
13
18
|
if defined?(JRUBY_VERSION)
|
14
19
|
gem 'sinatra', :require => false
|
15
20
|
gem 'activerecord-jdbc-adapter'
|
data/lib/oboe_metal.rb
CHANGED
@@ -72,15 +72,28 @@ module TraceView
|
|
72
72
|
|
73
73
|
return contents if contents.empty?
|
74
74
|
|
75
|
-
s = StringIO.new(contents[0])
|
76
|
-
|
77
75
|
traces = []
|
78
76
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
77
|
+
#
|
78
|
+
# We use Gem.loaded_spec because older versions of the bson
|
79
|
+
# gem didn't even have a version embedded in the gem. If the
|
80
|
+
# gem isn't in the bundle, it should rightfully error out
|
81
|
+
# anyways.
|
82
|
+
#
|
83
|
+
if Gem.loaded_specs['bson'].version.to_s < '4.0'
|
84
|
+
s = StringIO.new(contents[0])
|
85
|
+
|
86
|
+
until s.eof?
|
87
|
+
if ::BSON.respond_to? :read_bson_document
|
88
|
+
traces << BSON.read_bson_document(s)
|
89
|
+
else
|
90
|
+
traces << BSON::Document.from_bson(s)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
else
|
94
|
+
bbb = BSON::ByteBuffer.new(contents[0])
|
95
|
+
until bbb.length == 0
|
96
|
+
traces << Hash.from_bson(bbb)
|
84
97
|
end
|
85
98
|
end
|
86
99
|
|
data/lib/traceview/inst/mongo.rb
CHANGED
@@ -22,7 +22,7 @@ module TraceView
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
if defined?(::Mongo) && TraceView::Config[:mongo][:enabled]
|
25
|
+
if defined?(::Mongo) && (Gem.loaded_specs['mongo'].version.to_s < '2.0.0') && TraceView::Config[:mongo][:enabled]
|
26
26
|
TraceView.logger.info '[traceview/loading] Instrumenting mongo' if TraceView::Config[:verbose]
|
27
27
|
|
28
28
|
if defined?(::Mongo::DB)
|
@@ -0,0 +1,226 @@
|
|
1
|
+
# Copyright (c) 2013 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
if RUBY_VERSION >= '1.9' && TraceView::Config[:mongo][:enabled]
|
7
|
+
if defined?(::Mongo) && (Gem.loaded_specs['mongo'].version.to_s >= '2.0.0')
|
8
|
+
::TraceView.logger.info '[traceview/loading] Instrumenting mongo' if TraceView::Config[:verbose]
|
9
|
+
|
10
|
+
|
11
|
+
# Collection Related Operations
|
12
|
+
COLL_OTHER_OPS = [:create, :drop, :insert_one, :insert_many, :bulk_write, :map_reduce]
|
13
|
+
|
14
|
+
# Mongo 2.2 only ops
|
15
|
+
if Mongo::VERSION >= '2.1'
|
16
|
+
COLL_QUERY_OPS = [ :find, :find_one_and_delete, :find_one_and_update, :find_one_and_replace, :update_one, :update_many, :delete_one, :delete_many, :replace_one ]
|
17
|
+
else
|
18
|
+
COLL_QUERY_OPS = [ :find, :update_many, :delete_one ]
|
19
|
+
end
|
20
|
+
|
21
|
+
COLL_OPS = COLL_QUERY_OPS + COLL_OTHER_OPS
|
22
|
+
|
23
|
+
module Mongo
|
24
|
+
class Collection
|
25
|
+
##
|
26
|
+
# collect_kvs
|
27
|
+
#
|
28
|
+
# Used to collect up information to report and build a hash
|
29
|
+
# with the Keys/Values to report.
|
30
|
+
#
|
31
|
+
def collect_kvs(op, args)
|
32
|
+
kvs = { :Flavor => :mongodb, :Database => @database.name }
|
33
|
+
|
34
|
+
kvs[:QueryOp] = op
|
35
|
+
|
36
|
+
if op == :create
|
37
|
+
kvs[:New_Collection_Name] = @name
|
38
|
+
else
|
39
|
+
kvs[:Collection] = @name
|
40
|
+
end
|
41
|
+
|
42
|
+
if op == :map_reduce
|
43
|
+
kvs[:Map_Function] = args[0]
|
44
|
+
kvs[:Reduce_Function] = args[1]
|
45
|
+
kvs[:Limit] = args[2][:limit] if args[2].is_a?(Hash) && args[2].key?(:limit)
|
46
|
+
end
|
47
|
+
|
48
|
+
if TraceView::Config[:mongo][:log_args]
|
49
|
+
if COLL_QUERY_OPS.include?(op)
|
50
|
+
kvs[:Query] = args.first.to_json
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
kvs[:RemoteHost] = @database.client.cluster.addresses.first.to_s
|
55
|
+
kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:mongo][:collect_backtraces]
|
56
|
+
rescue => e
|
57
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
58
|
+
ensure
|
59
|
+
return kvs
|
60
|
+
end
|
61
|
+
|
62
|
+
##
|
63
|
+
# Here we dynamically define wrapper methods for the operations
|
64
|
+
# we want to instrument in mongo
|
65
|
+
#
|
66
|
+
COLL_OPS.reject { |m| !method_defined?(m) }.each do |m|
|
67
|
+
define_method("#{m}_with_traceview") do |*args|
|
68
|
+
begin
|
69
|
+
if !TraceView.tracing? || TraceView.tracing_layer?(:mongo)
|
70
|
+
mongo_skipped = true
|
71
|
+
return send("#{m}_without_traceview", *args)
|
72
|
+
end
|
73
|
+
|
74
|
+
kvs = collect_kvs(m, args)
|
75
|
+
TraceView::API.log_entry(:mongo, kvs)
|
76
|
+
|
77
|
+
send("#{m}_without_traceview", *args)
|
78
|
+
rescue => e
|
79
|
+
TraceView::API.log_exception(:mongo, e)
|
80
|
+
raise e
|
81
|
+
ensure
|
82
|
+
TraceView::API.log_exit(:mongo) unless mongo_skipped
|
83
|
+
end
|
84
|
+
end
|
85
|
+
::TraceView::Util.method_alias(Mongo::Collection, m)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
##
|
91
|
+
# Mongo Collection View Instrumentation
|
92
|
+
#
|
93
|
+
|
94
|
+
# Collection View Related Operations
|
95
|
+
VIEW_QUERY_OPS = [ :delete_one, :delete_many, :count, :distinct, :find_one_and_delete, :find_one_and_update,
|
96
|
+
:replace_one, :update_one, :update_many ]
|
97
|
+
VIEW_OTHER_OPS = [ :aggregate, :map_reduce ]
|
98
|
+
VIEW_OPS = VIEW_QUERY_OPS + VIEW_OTHER_OPS
|
99
|
+
|
100
|
+
module Mongo
|
101
|
+
class Collection
|
102
|
+
class View
|
103
|
+
##
|
104
|
+
# collect_kvs
|
105
|
+
#
|
106
|
+
# Used to collect up information to report and build a hash
|
107
|
+
# with the Keys/Values to report.
|
108
|
+
#
|
109
|
+
def collect_kvs(op, args)
|
110
|
+
kvs = { :Flavor => :mongodb, :Database => @collection.database.name }
|
111
|
+
|
112
|
+
kvs[:QueryOp] = op
|
113
|
+
kvs[:Collection] = @collection.name
|
114
|
+
|
115
|
+
if op == :map_reduce
|
116
|
+
kvs[:Map_Function] = args[0]
|
117
|
+
kvs[:Reduce_Function] = args[1]
|
118
|
+
kvs[:Limit] = args[2][:limit] if args[2].is_a?(Hash) && args[2].key?(:limit)
|
119
|
+
end
|
120
|
+
|
121
|
+
if TraceView::Config[:mongo][:log_args]
|
122
|
+
if VIEW_QUERY_OPS.include?(op)
|
123
|
+
if defined?(filter)
|
124
|
+
kvs[:Query] = filter.to_json
|
125
|
+
elsif defined?(selector)
|
126
|
+
kvs[:Query] = selector.to_json
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
kvs[:RemoteHost] = @collection.database.client.cluster.addresses.first.to_s
|
132
|
+
kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:mongo][:collect_backtraces]
|
133
|
+
rescue => e
|
134
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
135
|
+
ensure
|
136
|
+
return kvs
|
137
|
+
end
|
138
|
+
|
139
|
+
##
|
140
|
+
# Here we dynamically define wrapper methods for the operations
|
141
|
+
# we want to instrument in mongo
|
142
|
+
#
|
143
|
+
VIEW_OPS.reject { |m| !method_defined?(m) }.each do |m|
|
144
|
+
define_method("#{m}_with_traceview") do |*args|
|
145
|
+
begin
|
146
|
+
if !TraceView.tracing? || TraceView.tracing_layer?(:mongo)
|
147
|
+
mongo_skipped = true
|
148
|
+
return send("#{m}_without_traceview", *args)
|
149
|
+
end
|
150
|
+
|
151
|
+
kvs = collect_kvs(m, args)
|
152
|
+
TraceView::API.log_entry(:mongo, kvs)
|
153
|
+
|
154
|
+
send("#{m}_without_traceview", *args)
|
155
|
+
rescue => e
|
156
|
+
TraceView::API.log_exception(:mongo, e)
|
157
|
+
raise e
|
158
|
+
ensure
|
159
|
+
TraceView::API.log_exit(:mongo) unless mongo_skipped
|
160
|
+
end
|
161
|
+
end
|
162
|
+
::TraceView::Util.method_alias(Mongo::Collection::View, m)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
##
|
169
|
+
# Mongo Collection Index View Instrumentation
|
170
|
+
#
|
171
|
+
|
172
|
+
# Collection Index View Related Operations
|
173
|
+
INDEX_OPS = [ :create_one, :create_many, :drop_one, :drop_all ]
|
174
|
+
|
175
|
+
module Mongo
|
176
|
+
module Index
|
177
|
+
class View
|
178
|
+
##
|
179
|
+
# collect_kvs
|
180
|
+
#
|
181
|
+
# Used to collect up information to report and build a hash
|
182
|
+
# with the Keys/Values to report.
|
183
|
+
#
|
184
|
+
def collect_index_kvs(op, args)
|
185
|
+
kvs = { :Flavor => :mongodb, :Database => @collection.database.name }
|
186
|
+
|
187
|
+
kvs[:QueryOp] = op
|
188
|
+
kvs[:Collection] = @collection.name
|
189
|
+
kvs[:RemoteHost] = @collection.database.client.cluster.addresses.first.to_s
|
190
|
+
kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:mongo][:collect_backtraces]
|
191
|
+
rescue => e
|
192
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
193
|
+
ensure
|
194
|
+
return kvs
|
195
|
+
end
|
196
|
+
|
197
|
+
##
|
198
|
+
# Here we dynamically define wrapper methods for the operations
|
199
|
+
# we want to instrument in mongo
|
200
|
+
#
|
201
|
+
INDEX_OPS.reject { |m| !method_defined?(m) }.each do |m|
|
202
|
+
define_method("#{m}_with_traceview") do |*args|
|
203
|
+
begin
|
204
|
+
if !TraceView.tracing? || TraceView.tracing_layer?(:mongo)
|
205
|
+
mongo_skipped = true
|
206
|
+
return send("#{m}_without_traceview", *args)
|
207
|
+
end
|
208
|
+
|
209
|
+
kvs = collect_index_kvs(m, args)
|
210
|
+
TraceView::API.log_entry(:mongo, kvs)
|
211
|
+
|
212
|
+
send("#{m}_without_traceview", *args)
|
213
|
+
rescue => e
|
214
|
+
TraceView::API.log_exception(:mongo, e)
|
215
|
+
raise e
|
216
|
+
ensure
|
217
|
+
TraceView::API.log_exit(:mongo) unless mongo_skipped
|
218
|
+
end
|
219
|
+
end
|
220
|
+
::TraceView::Util.method_alias(Mongo::Index::View, m)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
data/lib/traceview/inst/moped.rb
CHANGED
@@ -37,17 +37,17 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
37
37
|
begin
|
38
38
|
report_kvs[:Flavor] = TraceView::Inst::Moped::FLAVOR
|
39
39
|
# FIXME: We're only grabbing the first of potentially multiple servers here
|
40
|
+
first = session.cluster.seeds.first
|
40
41
|
if ::Moped::VERSION < '2.0.0'
|
41
|
-
report_kvs[:RemoteHost]
|
42
|
+
report_kvs[:RemoteHost] = first
|
42
43
|
else
|
43
|
-
report_kvs[:RemoteHost] =
|
44
|
-
report_kvs[:RemotePort] = session.cluster.seeds.first.address.port
|
44
|
+
report_kvs[:RemoteHost] = "#{first.address.host}:#{first.address.port}"
|
45
45
|
end
|
46
46
|
report_kvs[:Database] = name
|
47
47
|
report_kvs[:QueryOp] = op.to_s
|
48
48
|
report_kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:moped][:collect_backtraces]
|
49
49
|
rescue StandardError => e
|
50
|
-
TraceView.logger.debug "[traceview/debug]
|
50
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
51
51
|
end
|
52
52
|
report_kvs
|
53
53
|
end
|
@@ -59,7 +59,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
59
59
|
report_kvs[:Map_Function] = command[:map]
|
60
60
|
report_kvs[:Reduce_Function] = command[:reduce]
|
61
61
|
rescue => e
|
62
|
-
TraceView.logger.debug "[traceview/debug]
|
62
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
63
63
|
end
|
64
64
|
|
65
65
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -100,18 +100,19 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
100
100
|
report_kvs = {}
|
101
101
|
begin
|
102
102
|
report_kvs[:Flavor] = TraceView::Inst::Moped::FLAVOR
|
103
|
+
|
103
104
|
# FIXME: We're only grabbing the first of potentially multiple servers here
|
105
|
+
first = database.session.cluster.seeds.first
|
104
106
|
if ::Moped::VERSION < '2.0.0'
|
105
|
-
report_kvs[:RemoteHost]
|
107
|
+
report_kvs[:RemoteHost] = first
|
106
108
|
else
|
107
|
-
report_kvs[:RemoteHost] =
|
108
|
-
report_kvs[:RemotePort] = database.session.cluster.seeds.first.address.port
|
109
|
+
report_kvs[:RemoteHost] = "#{first.address.host}:#{first.address.port}"
|
109
110
|
end
|
110
111
|
report_kvs[:Database] = database.name
|
111
112
|
report_kvs[:QueryOp] = op.to_s
|
112
113
|
report_kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:moped][:collect_backtraces]
|
113
114
|
rescue StandardError => e
|
114
|
-
TraceView.logger.debug "[traceview/debug]
|
115
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
115
116
|
end
|
116
117
|
report_kvs
|
117
118
|
end
|
@@ -126,7 +127,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
126
127
|
report_kvs[:Key] = key.to_json
|
127
128
|
report_kvs[:Options] = options.to_json
|
128
129
|
rescue StandardError => e
|
129
|
-
TraceView.logger.debug "[traceview/debug]
|
130
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
130
131
|
end
|
131
132
|
|
132
133
|
TraceView::API.trace('mongo', report_kvs, :create_index) do
|
@@ -143,7 +144,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
143
144
|
report_kvs = extract_trace_details(:drop_indexes)
|
144
145
|
report_kvs[:Key] = key.nil? ? 'all' : key.to_json
|
145
146
|
rescue StandardError => e
|
146
|
-
TraceView.logger.debug "[traceview/debug]
|
147
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
147
148
|
end
|
148
149
|
|
149
150
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -172,18 +173,18 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
172
173
|
begin
|
173
174
|
report_kvs[:Flavor] = TraceView::Inst::Moped::FLAVOR
|
174
175
|
# FIXME: We're only grabbing the first of potentially multiple servers here
|
176
|
+
first = collection.database.session.cluster.seeds.first
|
175
177
|
if ::Moped::VERSION < '2.0.0'
|
176
|
-
report_kvs[:RemoteHost]
|
178
|
+
report_kvs[:RemoteHost] = first
|
177
179
|
else
|
178
|
-
report_kvs[:RemoteHost] =
|
179
|
-
report_kvs[:RemotePort] = collection.database.session.cluster.seeds.first.address.port
|
180
|
+
report_kvs[:RemoteHost] = "#{first.address.host}:#{first.address.port}"
|
180
181
|
end
|
181
182
|
report_kvs[:Database] = collection.database.name
|
182
183
|
report_kvs[:Collection] = collection.name
|
183
184
|
report_kvs[:QueryOp] = op.to_s
|
184
185
|
report_kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:moped][:collect_backtraces]
|
185
186
|
rescue StandardError => e
|
186
|
-
TraceView.logger.debug "[traceview/debug]
|
187
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
187
188
|
end
|
188
189
|
report_kvs
|
189
190
|
end
|
@@ -195,7 +196,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
195
196
|
report_kvs = extract_trace_details(:count)
|
196
197
|
report_kvs[:Query] = selector.empty? ? 'all' : selector.to_json
|
197
198
|
rescue StandardError => e
|
198
|
-
TraceView.logger.debug "[traceview/debug]
|
199
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
199
200
|
end
|
200
201
|
|
201
202
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -211,7 +212,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
211
212
|
report_kvs[:Query] = selector.empty? ? 'all' : selector.to_json
|
212
213
|
report_kvs[:Order] = sort.to_s
|
213
214
|
rescue StandardError => e
|
214
|
-
TraceView.logger.debug "[traceview/debug]
|
215
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
215
216
|
end
|
216
217
|
|
217
218
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -226,7 +227,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
226
227
|
report_kvs[:Query] = selector.empty? ? 'all' : selector.to_json
|
227
228
|
report_kvs[:Limit] = limit.to_s
|
228
229
|
rescue StandardError => e
|
229
|
-
TraceView.logger.debug "[traceview/debug]
|
230
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
230
231
|
end
|
231
232
|
|
232
233
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -245,7 +246,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
245
246
|
report_kvs[:Query] = selector.empty? ? 'all' : selector.to_json
|
246
247
|
report_kvs[:Key] = key.to_s
|
247
248
|
rescue StandardError => e
|
248
|
-
TraceView.logger.debug "[traceview/debug]
|
249
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
249
250
|
end
|
250
251
|
|
251
252
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -260,7 +261,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
260
261
|
report_kvs[:Flags] = flags.to_s if flags
|
261
262
|
report_kvs[:Update_Document] = change.to_json
|
262
263
|
rescue StandardError => e
|
263
|
-
TraceView.logger.debug "[traceview/debug]
|
264
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
264
265
|
end
|
265
266
|
|
266
267
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -278,7 +279,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
278
279
|
report_kvs = extract_trace_details(:update_all)
|
279
280
|
report_kvs[:Update_Document] = change.to_json
|
280
281
|
rescue StandardError => e
|
281
|
-
TraceView.logger.debug "[traceview/debug]
|
282
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
282
283
|
end
|
283
284
|
|
284
285
|
TraceView::API.trace('mongo', report_kvs, :update_all) do
|
@@ -294,7 +295,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
294
295
|
report_kvs[:Query] = selector.to_json
|
295
296
|
report_kvs[:Update_Document] = change.to_json
|
296
297
|
rescue StandardError => e
|
297
|
-
TraceView.logger.debug "[traceview/debug]
|
298
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
298
299
|
end
|
299
300
|
|
300
301
|
TraceView::API.trace('mongo', report_kvs, :upsert) do
|
@@ -309,7 +310,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
309
310
|
report_kvs = extract_trace_details(:explain)
|
310
311
|
report_kvs[:Query] = selector.empty? ? 'all' : selector.to_json
|
311
312
|
rescue StandardError => e
|
312
|
-
TraceView.logger.debug "[traceview/debug]
|
313
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
313
314
|
end
|
314
315
|
|
315
316
|
TraceView::API.trace('mongo', report_kvs, :explain) do
|
@@ -326,7 +327,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
326
327
|
report_kvs[:Change] = change.to_json
|
327
328
|
report_kvs[:Options] = options.to_json
|
328
329
|
rescue StandardError => e
|
329
|
-
TraceView.logger.debug "[traceview/debug]
|
330
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
330
331
|
end
|
331
332
|
|
332
333
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -341,7 +342,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
341
342
|
report_kvs = extract_trace_details(:remove)
|
342
343
|
report_kvs[:Query] = selector.to_json
|
343
344
|
rescue StandardError => e
|
344
|
-
TraceView.logger.debug "[traceview/debug]
|
345
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
345
346
|
end
|
346
347
|
|
347
348
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -356,7 +357,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
356
357
|
report_kvs = extract_trace_details(:remove_all)
|
357
358
|
report_kvs[:Query] = selector.to_json
|
358
359
|
rescue StandardError => e
|
359
|
-
TraceView.logger.debug "[traceview/debug]
|
360
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
360
361
|
end
|
361
362
|
|
362
363
|
TraceView::API.trace('mongo', report_kvs) do
|
@@ -385,18 +386,18 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
385
386
|
begin
|
386
387
|
report_kvs[:Flavor] = TraceView::Inst::Moped::FLAVOR
|
387
388
|
# FIXME: We're only grabbing the first of potentially multiple servers here
|
389
|
+
first = database.session.cluster.seeds.first
|
388
390
|
if ::Moped::VERSION < '2.0.0'
|
389
|
-
report_kvs[:RemoteHost]
|
391
|
+
report_kvs[:RemoteHost] = first
|
390
392
|
else
|
391
|
-
report_kvs[:RemoteHost] =
|
392
|
-
report_kvs[:RemotePort] = database.session.cluster.seeds.first.address.port
|
393
|
+
report_kvs[:RemoteHost] = "#{first.address.host}:#{first.address.port}"
|
393
394
|
end
|
394
395
|
report_kvs[:Database] = database.name
|
395
396
|
report_kvs[:Collection] = name
|
396
397
|
report_kvs[:QueryOp] = op.to_s
|
397
398
|
report_kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:moped][:collect_backtraces]
|
398
399
|
rescue StandardError => e
|
399
|
-
TraceView.logger.debug "[traceview/debug]
|
400
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
400
401
|
end
|
401
402
|
report_kvs
|
402
403
|
end
|
@@ -420,7 +421,7 @@ if defined?(::Moped) && TraceView::Config[:moped][:enabled]
|
|
420
421
|
report_kvs = extract_trace_details(:find)
|
421
422
|
report_kvs[:Query] = selector.empty? ? 'all' : selector.to_json
|
422
423
|
rescue StandardError => e
|
423
|
-
TraceView.logger.debug "[traceview/debug]
|
424
|
+
TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose]
|
424
425
|
end
|
425
426
|
|
426
427
|
TraceView::API.trace('mongo', report_kvs) do
|
data/lib/traceview/version.rb
CHANGED