RAPIDS Server Author: Anna Bekkerman
Starting Up Server Logger ProxyProducer Mdcn 1 Starts 4 3 Sets up 7 Notifies when LMM server is ready 2 Listens LMM Server 5 Starts libServer.s o Java C++ RAPIDS configuration file 6 Listens LMM Launcher 8 Starts LMMs libLauncher.so
Starting Up Server Logger ProxyProducer Mdcn 10 Forwards signals Listens LMM Server 9 Forwards signals 12 Java C++ Command Sender 11 Sets LMMs up libSender.s o GeneralConsumer Starts 13 Starts monitoring LMM Sends commands
Logger Class First, server starts the logging module – Path for storing log files should be provided in config file Logging module: – Opens a log file – Writes current setup to the log file Current setup is provided in RAPIDS configuration file
ProxyProducer Class Uses JNI to communicate with LMM server – LMM server is written in C++ Main functionality: – Launches LMM server – Creates event objects See “Event Hierarchy” section for more details on event classes – Forwards events to GeneralConsumer who logs them and sends to RAPIDS clients
LMM Server Uses “Common C++” framework to communicate with LMMs – Online documentation on “Common C++” can be found here: Main functionality: – Receives data from LMMs – Forwards the data to ProxyProducer (through JNI calls)
Mdcn Class (aka Main Display and Control Node) Implements all control actions Uses JNI to launch LMMs, set them up, and stop them Main functionality: – Starts/stops LMMs – Sets LMMs up according to the setup provided in the configuration file – Starts/stops GeneralConsumer
LMM Launcher Starts a process that launches LMM on a given machine LMM is started remotely using ssh connection – Important! ssh on remote machines should be configured to allow command execution without providing a password
Command Sender Uses “Common C++” framework to communicate with LMMs Commands might have a number of parameters – For example: metric key, name of a monitored process, command to start a process, update rate Classes that describe set-up commands are contained in command package
GeneralConsumer Class Logs received events in order of their arrival – Uses Logger class Forwards events to RAPIDS clients – The list of clients is being constantly updated by the Server
Events Flow Server Logger ProxyProducer LMM Server Java C++ LMM GeneralConsumer Events Client Updates list of clients Events
Shutting Down ServerMdcn Java C++ Command Sender 1 Stops 2 Stops LMMs LMM Ctrl-C/kill Sends stop command GeneralConsumer 3 Stops Upon receiving stop command, LMM performs all necessary clean-up and dies