lib/oboe/inst/moped.rb in oboe-1.3.9.1 vs lib/oboe/inst/moped.rb in oboe-1.4.0.2
- old
+ new
@@ -20,396 +20,398 @@
COLLECTION_OPS = [ :drop, :find, :indexes, :insert, :aggregate ]
end
end
end
-puts "[oboe/loading] Instrumenting moped" if Oboe::Config[:verbose] and defined?(::Moped)
+if defined?(::Moped) and Oboe::Config[:moped][:enabled]
+ puts "[oboe/loading] Instrumenting moped" if Oboe::Config[:verbose]
-if defined?(::Moped::Database)
- module ::Moped
- class Database
- include Oboe::Inst::Moped
-
- def extract_trace_details(op)
- report_kvs = {}
- begin
- report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
- # FIXME: We're only grabbing the first of potentially multiple servers here
- report_kvs[:RemoteHost], report_kvs[:RemotePort] = session.cluster.seeds.first.split(':')
- report_kvs[:Database] = name
- report_kvs[:QueryOp] = op.to_s
- rescue
+ if defined?(::Moped::Database)
+ module ::Moped
+ class Database
+ include Oboe::Inst::Moped
+
+ def extract_trace_details(op)
+ report_kvs = {}
+ begin
+ report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
+ # FIXME: We're only grabbing the first of potentially multiple servers here
+ report_kvs[:RemoteHost], report_kvs[:RemotePort] = session.cluster.seeds.first.split(':')
+ report_kvs[:Database] = name
+ report_kvs[:QueryOp] = op.to_s
+ rescue
+ end
+ report_kvs
end
- report_kvs
- end
-
- def command_with_oboe(command)
- if Oboe::Config.tracing? and not Oboe::Context.layer_op and command.has_key?(:mapreduce)
- report_kvs = extract_trace_details(:map_reduce)
- report_kvs[:Map_Function] = command[:map]
- report_kvs[:Reduce_Function] = command[:reduce]
+
+ def command_with_oboe(command)
+ if Oboe.tracing? and not Oboe::Context.layer_op and command.has_key?(:mapreduce)
+ report_kvs = extract_trace_details(:map_reduce)
+ report_kvs[:Map_Function] = command[:map]
+ report_kvs[:Reduce_Function] = command[:reduce]
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ command_without_oboe(command)
+ end
+ else
command_without_oboe(command)
end
- else
- command_without_oboe(command)
end
- end
- def drop_with_oboe
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:drop_database)
+ def drop_with_oboe
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:drop_database)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ drop_without_oboe
+ end
+ else
drop_without_oboe
end
- else
- drop_without_oboe
end
- end
-
- Oboe::Inst::Moped::DB_OPS.each do |m|
- if method_defined?(m)
- class_eval "alias #{m}_without_oboe #{m}"
- class_eval "alias #{m} #{m}_with_oboe"
- else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+
+ Oboe::Inst::Moped::DB_OPS.each do |m|
+ if method_defined?(m)
+ class_eval "alias #{m}_without_oboe #{m}"
+ class_eval "alias #{m} #{m}_with_oboe"
+ else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+ end
end
end
end
end
-end
-if defined?(::Moped::Indexes)
- module ::Moped
- class Indexes
- include Oboe::Inst::Moped
-
- def extract_trace_details(op)
- report_kvs = {}
- begin
- report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
- # FIXME: We're only grabbing the first of potentially multiple servers here
- report_kvs[:RemoteHost], report_kvs[:RemotePort] = database.session.cluster.seeds.first.split(':')
- report_kvs[:Database] = database.name
- report_kvs[:QueryOp] = op.to_s
- rescue
+ if defined?(::Moped::Indexes)
+ module ::Moped
+ class Indexes
+ include Oboe::Inst::Moped
+
+ def extract_trace_details(op)
+ report_kvs = {}
+ begin
+ report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
+ # FIXME: We're only grabbing the first of potentially multiple servers here
+ report_kvs[:RemoteHost], report_kvs[:RemotePort] = database.session.cluster.seeds.first.split(':')
+ report_kvs[:Database] = database.name
+ report_kvs[:QueryOp] = op.to_s
+ rescue
+ end
+ report_kvs
end
- report_kvs
- end
-
- def create_with_oboe(key, options = {})
- if Oboe::Config.tracing?
- # We report :create_index here to be consistent
- # with other mongo implementations
- report_kvs = extract_trace_details(:create_index)
- report_kvs[:Key] = key.try(:to_json)
- report_kvs[:Options] = options.try(:to_json)
+
+ def create_with_oboe(key, options = {})
+ if Oboe.tracing?
+ # We report :create_index here to be consistent
+ # with other mongo implementations
+ report_kvs = extract_trace_details(:create_index)
+ report_kvs[:Key] = key.try(:to_json)
+ report_kvs[:Options] = options.try(:to_json)
- Oboe::API.trace('mongo', report_kvs, :create_index) do
+ Oboe::API.trace('mongo', report_kvs, :create_index) do
+ create_without_oboe(key, options = {})
+ end
+ else
create_without_oboe(key, options = {})
end
- else
- create_without_oboe(key, options = {})
end
- end
-
- def drop_with_oboe(key = nil)
- if Oboe::Config.tracing?
- # We report :drop_indexes here to be consistent
- # with other mongo implementations
- report_kvs = extract_trace_details(:drop_indexes)
- report_kvs[:Key] = key.nil? ? "all" : key.try(:to_json)
+
+ def drop_with_oboe(key = nil)
+ if Oboe.tracing?
+ # We report :drop_indexes here to be consistent
+ # with other mongo implementations
+ report_kvs = extract_trace_details(:drop_indexes)
+ report_kvs[:Key] = key.nil? ? "all" : key.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ drop_without_oboe(key = nil)
+ end
+ else
drop_without_oboe(key = nil)
end
- else
- drop_without_oboe(key = nil)
end
- end
- Oboe::Inst::Moped::INDEX_OPS.each do |m|
- if method_defined?(m)
- class_eval "alias #{m}_without_oboe #{m}"
- class_eval "alias #{m} #{m}_with_oboe"
- else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+ Oboe::Inst::Moped::INDEX_OPS.each do |m|
+ if method_defined?(m)
+ class_eval "alias #{m}_without_oboe #{m}"
+ class_eval "alias #{m} #{m}_with_oboe"
+ else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+ end
end
end
end
end
-end
-if defined?(::Moped::Query)
- module ::Moped
- class Query
- include Oboe::Inst::Moped
+ if defined?(::Moped::Query)
+ module ::Moped
+ class Query
+ include Oboe::Inst::Moped
- def extract_trace_details(op)
- report_kvs = {}
- begin
- report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
- # FIXME: We're only grabbing the first of potentially multiple servers here
- report_kvs[:RemoteHost], report_kvs[:RemotePort] = collection.database.session.cluster.seeds.first.split(':')
- report_kvs[:Database] = collection.database.name
- report_kvs[:Collection_Name] = collection.name
- report_kvs[:QueryOp] = op.to_s
- rescue
+ def extract_trace_details(op)
+ report_kvs = {}
+ begin
+ report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
+ # FIXME: We're only grabbing the first of potentially multiple servers here
+ report_kvs[:RemoteHost], report_kvs[:RemotePort] = collection.database.session.cluster.seeds.first.split(':')
+ report_kvs[:Database] = collection.database.name
+ report_kvs[:Collection_Name] = collection.name
+ report_kvs[:QueryOp] = op.to_s
+ rescue
+ end
+ report_kvs
end
- report_kvs
- end
-
- def count_with_oboe
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:count)
- report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+
+ def count_with_oboe
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:count)
+ report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ count_without_oboe
+ end
+ else
count_without_oboe
end
- else
- count_without_oboe
end
- end
- def sort_with_oboe(sort)
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:sort)
- report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- report_kvs[:Order] = sort.to_s
+ def sort_with_oboe(sort)
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:sort)
+ report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+ report_kvs[:Order] = sort.to_s
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ sort_without_oboe(sort)
+ end
+ else
sort_without_oboe(sort)
end
- else
- sort_without_oboe(sort)
end
- end
-
- def limit_with_oboe(limit)
- if Oboe::Config.tracing? and not Oboe::Context.tracing_layer_op?(:explain)
- report_kvs = extract_trace_details(:limit)
- report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- report_kvs[:Limit] = limit.to_s
+
+ def limit_with_oboe(limit)
+ if Oboe.tracing? and not Oboe::Context.tracing_layer_op?(:explain)
+ report_kvs = extract_trace_details(:limit)
+ report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+ report_kvs[:Limit] = limit.to_s
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ limit_without_oboe(limit)
+ end
+ else
limit_without_oboe(limit)
end
- else
- limit_without_oboe(limit)
end
- end
- def distinct_with_oboe(key)
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:distinct)
- report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- report_kvs[:Key] = key.to_s
+ def distinct_with_oboe(key)
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:distinct)
+ report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+ report_kvs[:Key] = key.to_s
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ distinct_without_oboe(key)
+ end
+ else
distinct_without_oboe(key)
end
- else
- distinct_without_oboe(key)
end
- end
-
- def update_with_oboe(change, flags = nil)
- if Oboe::Config.tracing? and not Oboe::Context.tracing_layer_op?([:update_all, :upsert])
- report_kvs = extract_trace_details(:update)
- report_kvs[:Flags] = flags.to_s if flags
- report_kvs[:Update_Document] = change.try(:to_json)
+
+ def update_with_oboe(change, flags = nil)
+ if Oboe.tracing? and not Oboe::Context.tracing_layer_op?([:update_all, :upsert])
+ report_kvs = extract_trace_details(:update)
+ report_kvs[:Flags] = flags.to_s if flags
+ report_kvs[:Update_Document] = change.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ update_without_oboe(change, flags = nil)
+ end
+ else
update_without_oboe(change, flags = nil)
end
- else
- update_without_oboe(change, flags = nil)
end
- end
-
- def update_all_with_oboe(change)
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:update_all)
- report_kvs[:Update_Document] = change.try(:to_json)
+
+ def update_all_with_oboe(change)
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:update_all)
+ report_kvs[:Update_Document] = change.try(:to_json)
- Oboe::API.trace('mongo', report_kvs, :update_all) do
+ Oboe::API.trace('mongo', report_kvs, :update_all) do
+ update_all_without_oboe(change)
+ end
+ else
update_all_without_oboe(change)
end
- else
- update_all_without_oboe(change)
end
- end
- def upsert_with_oboe(change)
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:upsert)
- report_kvs[:Query] = selector.try(:to_json)
- report_kvs[:Update_Document] = change.try(:to_json)
+ def upsert_with_oboe(change)
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:upsert)
+ report_kvs[:Query] = selector.try(:to_json)
+ report_kvs[:Update_Document] = change.try(:to_json)
- Oboe::API.trace('mongo', report_kvs, :upsert) do
+ Oboe::API.trace('mongo', report_kvs, :upsert) do
+ upsert_without_oboe(change)
+ end
+ else
upsert_without_oboe(change)
end
- else
- upsert_without_oboe(change)
end
- end
- def explain_with_oboe
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:explain)
- report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+ def explain_with_oboe
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:explain)
+ report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- Oboe::API.trace('mongo', report_kvs, :explain) do
+ Oboe::API.trace('mongo', report_kvs, :explain) do
+ explain_without_oboe
+ end
+ else
explain_without_oboe
end
- else
- explain_without_oboe
end
- end
- def modify_with_oboe(change, options = {})
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:modify)
- report_kvs[:Update_Document] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- report_kvs[:Change] = change.try(:to_json)
- report_kvs[:Options] = options.try(:to_json)
+ def modify_with_oboe(change, options = {})
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:modify)
+ report_kvs[:Update_Document] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+ report_kvs[:Change] = change.try(:to_json)
+ report_kvs[:Options] = options.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ modify_without_oboe(change, options)
+ end
+ else
modify_without_oboe(change, options)
end
- else
- modify_without_oboe(change, options)
end
- end
-
- def remove_with_oboe
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:remove)
- report_kvs[:Query] = selector.try(:to_json)
+
+ def remove_with_oboe
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:remove)
+ report_kvs[:Query] = selector.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ remove_without_oboe
+ end
+ else
remove_without_oboe
end
- else
- remove_without_oboe
end
- end
- def remove_all_with_oboe
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:remove_all)
- report_kvs[:Query] = selector.try(:to_json)
+ def remove_all_with_oboe
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:remove_all)
+ report_kvs[:Query] = selector.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ remove_all_without_oboe
+ end
+ else
remove_all_without_oboe
end
- else
- remove_all_without_oboe
end
- end
- Oboe::Inst::Moped::QUERY_OPS.each do |m|
- if method_defined?(m)
- class_eval "alias #{m}_without_oboe #{m}"
- class_eval "alias #{m} #{m}_with_oboe"
- else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+ Oboe::Inst::Moped::QUERY_OPS.each do |m|
+ if method_defined?(m)
+ class_eval "alias #{m}_without_oboe #{m}"
+ class_eval "alias #{m} #{m}_with_oboe"
+ else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+ end
end
end
end
- end
-end # ::Moped::Query
+ end # ::Moped::Query
-if defined?(::Moped::Collection)
- module ::Moped
- class Collection
- include Oboe::Inst::Moped
+ if defined?(::Moped::Collection)
+ module ::Moped
+ class Collection
+ include Oboe::Inst::Moped
- def extract_trace_details(op)
- report_kvs = {}
- begin
- report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
- # FIXME: We're only grabbing the first of potentially multiple servers here
- report_kvs[:RemoteHost], report_kvs[:RemotePort] = @database.session.cluster.seeds.first.split(':')
- report_kvs[:Database] = @database.name
- report_kvs[:Collection_Name] = @name
- report_kvs[:QueryOp] = op.to_s
- rescue
+ def extract_trace_details(op)
+ report_kvs = {}
+ begin
+ report_kvs[:Flavor] = Oboe::Inst::Moped::FLAVOR
+ # FIXME: We're only grabbing the first of potentially multiple servers here
+ report_kvs[:RemoteHost], report_kvs[:RemotePort] = @database.session.cluster.seeds.first.split(':')
+ report_kvs[:Database] = @database.name
+ report_kvs[:Collection_Name] = @name
+ report_kvs[:QueryOp] = op.to_s
+ rescue
+ end
+ report_kvs
end
- report_kvs
- end
- def drop_with_oboe
- if Oboe::Config.tracing?
- # We report :drop_collection here to be consistent
- # with other mongo implementations
- report_kvs = extract_trace_details(:drop_collection)
+ def drop_with_oboe
+ if Oboe.tracing?
+ # We report :drop_collection here to be consistent
+ # with other mongo implementations
+ report_kvs = extract_trace_details(:drop_collection)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ drop_without_oboe
+ end
+ else
drop_without_oboe
end
- else
- drop_without_oboe
end
- end
- def find_with_oboe(selector = {})
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:find)
- report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
+ def find_with_oboe(selector = {})
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:find)
+ report_kvs[:Query] = selector.try(:empty?) ? "all" : selector.try(:to_json)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ find_without_oboe(selector)
+ end
+ else
find_without_oboe(selector)
end
- else
- find_without_oboe(selector)
end
- end
-
- def indexes_with_oboe
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:indexes)
+
+ def indexes_with_oboe
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:indexes)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ indexes_without_oboe
+ end
+ else
indexes_without_oboe
end
- else
- indexes_without_oboe
end
- end
-
- def insert_with_oboe(documents, flags = nil)
- if Oboe::Config.tracing? and not Oboe::Context.tracing_layer_op?(:create_index)
- report_kvs = extract_trace_details(:insert)
+
+ def insert_with_oboe(documents, flags = nil)
+ if Oboe.tracing? and not Oboe::Context.tracing_layer_op?(:create_index)
+ report_kvs = extract_trace_details(:insert)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ insert_without_oboe(documents, flags)
+ end
+ else
insert_without_oboe(documents, flags)
end
- else
- insert_without_oboe(documents, flags)
end
- end
-
- def aggregate_with_oboe(pipeline)
- if Oboe::Config.tracing?
- report_kvs = extract_trace_details(:aggregate)
+
+ def aggregate_with_oboe(pipeline)
+ if Oboe.tracing?
+ report_kvs = extract_trace_details(:aggregate)
- Oboe::API.trace('mongo', report_kvs) do
+ Oboe::API.trace('mongo', report_kvs) do
+ aggregate_without_oboe(pipeline)
+ end
+ else
aggregate_without_oboe(pipeline)
end
- else
- aggregate_without_oboe(pipeline)
end
- end
-
- Oboe::Inst::Moped::COLLECTION_OPS.each do |m|
- if method_defined?(m)
- class_eval "alias #{m}_without_oboe #{m}"
- class_eval "alias #{m} #{m}_with_oboe"
- else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+
+ Oboe::Inst::Moped::COLLECTION_OPS.each do |m|
+ if method_defined?(m)
+ class_eval "alias #{m}_without_oboe #{m}"
+ class_eval "alias #{m} #{m}_with_oboe"
+ else puts "[oboe/loading] Couldn't properly instrument moped (#{m}). Partial traces may occur."
+ end
end
end
end
- end
-end # ::Moped::Collection
+ end # ::Moped::Collection
+end