Class: ManageEngine::APMInstrumenter

Inherits:
Object
  • Object
show all
Defined in:
lib/agent/server/instrument/am_instrumenter.rb

Instance Method Summary collapse

Constructor Details

#initializeAPMInstrumenter



6
7
8
# File 'lib/agent/server/instrument/am_instrumenter.rb', line 6

def initialize
  @obj=ManageEngine::APMObjectHolder.instance
end

Instance Method Details

#doSubscribeObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/agent/server/instrument/am_instrumenter.rb', line 10

def doSubscribe
  @obj=ManageEngine::APMObjectHolder.instance
  @obj.log.debug "[ instrumenter ] [ Subscriber for Agent ]"
  @subscriber = ActiveSupport::Notifications.subscribe  do |name, start, finish, id, payload|
  if(ManageEngine::APMObjectHolder.instance.config.agent_enabled)
    rt = (finish-start).to_i
     ManageEngine::APMWorker.getInstance.start
    ManageEngine::APMObjectHolder.instance.log.debug "[ Notifications for Agent ] #{Thread.current} #{id} #{name} - #{rt} - #{payload}"
    trace= caller;
    id = "#{Thread.current}"
    stats = Hash.new
    stats["name"] = name;
    stats["start"] = start.to_f * 1000;
    stats["end"] = finish.to_f * 1000;
    stats["id"] = id;
    stats["payload"] = payload;
    if (name=="sql.active_record" && (finish-start)>=(ManageEngine::APMObjectHolder.instance.config.sql_trace_t * 1000 ).to_i)
      stats["trace"] = trace;
    end
    stats["ctime"] =ManageEngine::APMObjectHolder.instance.util.currenttimemillis;
    ManageEngine::APMObjectHolder.instance.collector.updateTransaction(id,stats);
  else
    ActiveSupport::Notifications.unsubscribe @subscriber
      @obj.log.info "[ instrumenter ] [ RETURNING NO METRICS] "
  end
  end
end

#doUnSubscribeObject



38
39
40
# File 'lib/agent/server/instrument/am_instrumenter.rb', line 38

def doUnSubscribe
  ActiveSupport::Notifications.unsubscribe @subscriber
end