def main(): composeFolder = 'compose' containerToMonitor = 'web' composePattern = composeFolder + '_' + containerToMonitor #containerToMonitor = 'ndsapprelease0858_ndspublicengagement-esb--release_1' logging.basicConfig(level=logging.INFO) logging.info('Main: started') #clientConn.TestDockerClient('local') cli = clientConn.GetDockerClient('local') # # try: # con = cli.containers.get(containerToMonitor) # except Exception as e: # logging.warning('Cant find "%s" container running' % containerToMonitor) # logging.error(e) # exit() # Initialize loop variables cons = utility.getContainerInComposeMode(composePattern, 'local') containerCount = len(cons) if containerCount < 1: logging.error('No containers found with pattern "%s"' % containerToMonitor) exit() else: firstCon = cons[0] con = cli.containers.get(firstCon) cpuseries = [0., 0., 0., 0., 0.] count = 0 end_Cool_time = None while (1): time.sleep(2) try: cpu = utility.get_CPU_Percentage(con) except: cpu = 0. meanCPU = utility.handleCPUSeries(cpuseries, cpu) # getting mean cpu usage end_Cool_time, containerCount = utility.ScaleContaienr( meanCPU, end_Cool_time, containerCount, containerToMonitor) count += 1 logging.info('Main: end') print('')
def getContainerInComposeMode(con_name_pattern, env): listOfSameContainerInCompose = [] regexptn = "^" + con_name_pattern + "_"; pattern = re.compile(regexptn) cli = clientConn.GetDockerClient(env) for con in cli.containers.list(): conname = con.name if (pattern.match(conname)): listOfSameContainerInCompose.append(conname) return listOfSameContainerInCompose
def getContainerInComposeMode(con_name_pattern, env): listOfSameContainerInCompose = [] #list of containers regexptn = "^" + con_name_pattern + ".*" #to match with the service name pattern = re.compile(regexptn) cli = clientConn.GetDockerClient(env) for con in cli.containers.list(): conname = con.name #print(conname) if (pattern.match(conname)): listOfSameContainerInCompose.append(conname) return listOfSameContainerInCompose