Class: ManageEngine::APMInstrumenter

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

Instance Method Summary collapse

Constructor Details

#initializeAPMInstrumenter

Returns a new instance of APMInstrumenter.



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