Sha256: 2be2a917dc969c06db0f6d5ae3d124520e04b13908793e62b7ac04fa0a0dc097

Contents?: true

Size: 1.42 KB

Versions: 6

Compression:

Stored size: 1.42 KB

Contents

require 'agent/am_objectholder'
require 'socket'
module ManageEngine
	class APMInstrumenter
	@t =nil;
	def initialize
		@obj=ManageEngine::APMObjectHolder.instance
	end

	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

	def doUnSubscribe
		ActiveSupport::Notifications.unsubscribe @subscriber
	end

end #class
end#module

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
site24x7_apminsight-1.1.1 lib/agent/server/instrument/am_instrumenter.rb
site24x7_apminsight-1.1 lib/agent/server/instrument/am_instrumenter.rb
site24x7_apminsight-1.0 lib/agent/server/instrument/am_instrumenter.rb
apminsight-1.0.1 lib/agent/server/instrument/am_instrumenter.rb
apminsight-1.0.0 lib/agent/server/instrument/am_instrumenter.rb
apminsight-0.0.3 lib/agent/server/instrument/am_instrumenter.rb