60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/one_apm/inst/nosql/mongo_moped.rb', line 60
def determine_operation_and_collection(operation)
log_statement = operation.log_inspect.encode("UTF-8")
collection = "Unknown"
if operation.respond_to?(:collection)
collection = operation.collection
end
operation_name = log_statement.split[0]
if operation_name == 'COMMAND' && log_statement.include?(":mapreduce")
operation_name = 'MAPREDUCE'
collection = log_statement[/:mapreduce=>"([^"]+)/,1]
elsif operation_name == 'COMMAND' && log_statement.include?(":count")
operation_name = 'COUNT'
collection = log_statement[/:count=>"([^"]+)/,1]
elsif operation_name == 'COMMAND' && log_statement.include?(":aggregate")
operation_name = 'AGGREGATE'
collection = log_statement[/:aggregate=>"([^"]+)/,1]
elsif operation_name == 'COMMAND' && log_statement.include?(":findAndModify")
operation_name = 'FIND_AND_MODIFY'
collection = log_statement[/:findAndModify=>"([^"]+)/,1]
end
return operation_name, collection
end
|