120 likes | 225 Views
RAPIDS Server. Author: Anna Bekkerman abekkerm@ecs.umass.edu. Starting Up. RAPIDS configuration file. Logger. Starts. Listens. 6. Starts. Listens. 1. 5. 2. Starts. ProxyProducer. LMM Server. 4. Server. Notifies when LMM server is ready. 3. 7. Sets up. Mdcn.
E N D
RAPIDS Server Author: Anna Bekkerman abekkerm@ecs.umass.edu
Starting Up RAPIDS configuration file Logger Starts Listens 6 Starts Listens 1 5 2 Starts ProxyProducer LMM Server 4 Server Notifies when LMM server is ready 3 7 Sets up Mdcn libServer.so 8 Starts LMMs LMM Launcher libLauncher.so Java C++
Starting Up Logger Forwards signals 9 LMM LMM Listens ProxyProducer LMM Server LMM Server Forwards signals 10 Mdcn 11 Sets LMMs up Starts 13 Starts monitoring 12 Command Sender GeneralConsumer Sends commands Java C++ libSender.so
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: http://www.gnu.org/software/commoncpp/ • 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 ProxyProducer Events Events GeneralConsumer Events LMM Server Events Logger Updates list of clients Events Client Client Client Server LMM Java LMM LMM C++
Shutting Down Ctrl-C/kill GeneralConsumer Stops Stops 3 1 LMM LMM Server Mdcn LMM Stops LMMs 2 Command Sender Sends stop command Upon receiving stop command, LMM performs all necessary clean-up and dies Java C++