Module: TingYun::Agent::Datastore::Mongo

Defined in:
lib/ting_yun/agent/datastore/mongo.rb

Class Method Summary collapse

Class Method Details

.monitoring_enabled?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/ting_yun/agent/datastore/mongo.rb', line 8

def self.monitoring_enabled?
  defined?(::Mongo::Monitoring)
end

.supported_version?Boolean

Returns:

  • (Boolean)


21
22
23
24
# File 'lib/ting_yun/agent/datastore/mongo.rb', line 21

def self.supported_version?
  # No version constant in < 2.0 versions of Mongo :(
  defined?(::Mongo) && (defined?(::Mongo::MongoClient) || monitoring_enabled?)
end

.transform_operation(operation) ⇒ Object

def self.transform_operation(operation)

t_operation = case operation.to_s.upcase
              when 'DELETE', 'FIND_AND_REMOVE', 'DELETEINDEXS', 'REMOVE'                       then 'destroy'
              when 'INSERT'                                                                    then 'INSERT'
              when 'UPDATE', 'RENAMECOLLECTION', 'REINDEX'                                     then 'UPDATE'
              when 'CREATE', 'FIND_AND_MODIFY', 'CREATEINDEXS', 'CREATEINDEX', 'REPINDEX'      then 'SAVE'
              when 'QUERY', 'COUNT', 'GET_MORE', 'AGGREGATE', 'FIND', 'FINDONE', 'GROUP'       then 'SECECT'
              else
                nil
              end
t_operation

end



38
39
40
# File 'lib/ting_yun/agent/datastore/mongo.rb', line 38

def self.transform_operation(operation)
  operation.to_s.upcase
end

.unsupported_2x?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/ting_yun/agent/datastore/mongo.rb', line 17

def self.unsupported_2x?
  defined?(::Mongo::VERSION) && TingYun::Support::VersionNumber.new(::Mongo::VERSION).major_version == 2
end

.version_1_10_or_later?Boolean

Returns:

  • (Boolean)


12
13
14
15
# File 'lib/ting_yun/agent/datastore/mongo.rb', line 12

def self.version_1_10_or_later?
  # Again, no VERSION constant in 1.x, so we have to rely on constant checks
  defined?(::Mongo::CollectionOperationWriter)
end