def run(self): # Check if Cassandra is running if self.isCassandraRunning(): myLogger.info( 'An running Cassandra instance is found') self.startLoggingJmx() # Runs the external tool Cassandra Stress myThread = threading.Thread(target = self.runCassandraStress) myThread.start() # Begins recording JMX Metrics count = 0 while True: time.sleep(self._interval) count += 1 self.logJmx(count) # Once the stress session has completed stop recording JMX Metrics if not myThread.isAlive(): break myLogger.info( 'Finish logging JMX metrics') self.stopLoggingJmx() # Record the metrics back into a Cassandra Table CassandraRecord.recordCsv(self._jmxLogFilename, self._host, 'JmxKeyspace', 'JmxRecord') # Graph the results Plotter.plotCsv(self._jmxLogFilename , self._jmxPlotFilename) else: myLogger.error( 'Cassandra instance is not found running')