From a2a8515728acd6f8e0c6b6b18e52b4d7833fd954 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Tue, 3 Mar 2015 15:16:17 -0800 Subject: [PATCH 1/3] Track 'boot' (pending -> ready) durations --- lib/vmpooler/pool_manager.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index b6c9ed2..e5fa074 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -50,7 +50,10 @@ module Vmpooler rescue end + finish = '%.2f' % (Time.now - Time.parse($redis.hget('vmpooler__vm__' + vm, 'clone'))) + $redis.smove('vmpooler__pending__' + pool, 'vmpooler__ready__' + pool, vm) + $redis.hset('vmpooler__boot__' + Date.today.to_s, vm, finish) $logger.log('s', "[>] [#{pool}] '#{vm}' moved to 'ready' queue") end From ba01b60541599ba0ee9acd5c0dc40720b92dee21 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Tue, 3 Mar 2015 15:21:06 -0800 Subject: [PATCH 2/3] Store template (pool) name with hostname in Redis metric keys --- lib/vmpooler/pool_manager.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index e5fa074..8aeaf61 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -53,7 +53,7 @@ module Vmpooler finish = '%.2f' % (Time.now - Time.parse($redis.hget('vmpooler__vm__' + vm, 'clone'))) $redis.smove('vmpooler__pending__' + pool, 'vmpooler__ready__' + pool, vm) - $redis.hset('vmpooler__boot__' + Date.today.to_s, vm, finish) + $redis.hset('vmpooler__boot__' + Date.today.to_s, pool + ':' + vm, finish) $logger.log('s', "[>] [#{pool}] '#{vm}' moved to 'ready' queue") end @@ -232,7 +232,7 @@ module Vmpooler ).wait_for_completion finish = '%.2f' % (Time.now - start) - $redis.hset('vmpooler__clone__' + Date.today.to_s, vm['hostname'], finish) + $redis.hset('vmpooler__clone__' + Date.today.to_s, vm['template'] + ':' + vm['hostname'], finish) $redis.hset('vmpooler__vm__' + vm['hostname'], 'clone_time', finish) $logger.log('s', "[+] [#{vm['template']}] '#{vm['hostname']}' cloned from '#{vm['template']}' in #{finish} seconds") From 18703efd60299de8a7949e654a059d88be13a0c2 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Wed, 4 Mar 2015 13:06:49 -0800 Subject: [PATCH 3/3] Guard against nil VM clone time --- lib/vmpooler/pool_manager.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index 8aeaf61..542c75c 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -50,7 +50,8 @@ module Vmpooler rescue end - finish = '%.2f' % (Time.now - Time.parse($redis.hget('vmpooler__vm__' + vm, 'clone'))) + clone_time = $redis.hget('vmpooler__vm__' + vm, 'clone') + finish = '%.2f' % (Time.now - Time.parse(clone_time)) if clone_time $redis.smove('vmpooler__pending__' + pool, 'vmpooler__ready__' + pool, vm) $redis.hset('vmpooler__boot__' + Date.today.to_s, pool + ':' + vm, finish)