mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 18:08:42 -05:00
Create daily tag indexes, report in /summary
- Store daily tag roll-ups in vmpooler__tag__<date> - GET /summary will display daily tag counts and roll-up
This commit is contained in:
parent
640b1ef4da
commit
4cfc078684
2 changed files with 37 additions and 1 deletions
|
|
@ -147,6 +147,28 @@ module Vmpooler
|
|||
queue
|
||||
end
|
||||
|
||||
def get_tag_metrics(backend, date_str)
|
||||
tags = {}
|
||||
|
||||
backend.hgetall('vmpooler__tag__' + date_str).each do |key, value|
|
||||
hostname = 'unknown'
|
||||
tag = 'unknown'
|
||||
|
||||
if key =~ /\:/
|
||||
hostname, tag = key.split(':', 2)
|
||||
end
|
||||
|
||||
tags[tag] ||= {}
|
||||
tags[tag][value] ||= 0
|
||||
tags[tag][value] += 1
|
||||
|
||||
tags[tag]['total'] ||= 0
|
||||
tags[tag]['total'] += 1
|
||||
end
|
||||
|
||||
tags
|
||||
end
|
||||
|
||||
def get_task_metrics(backend, task_str, date_str, opts = {})
|
||||
opts = {:bypool => false}.merge(opts)
|
||||
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ module Vmpooler
|
|||
pool: {}
|
||||
}
|
||||
},
|
||||
tag: {},
|
||||
daily: []
|
||||
}
|
||||
|
||||
|
|
@ -124,7 +125,8 @@ module Vmpooler
|
|||
daily = {
|
||||
date: date.to_s,
|
||||
boot: get_task_metrics(backend, 'boot', date.to_s, :bypool => true),
|
||||
clone: get_task_metrics(backend, 'clone', date.to_s, :bypool => true)
|
||||
clone: get_task_metrics(backend, 'clone', date.to_s, :bypool => true),
|
||||
tag: get_tag_metrics(backend, date.to_s)
|
||||
}
|
||||
|
||||
result[:daily].push(daily)
|
||||
|
|
@ -194,6 +196,17 @@ module Vmpooler
|
|||
end
|
||||
end
|
||||
|
||||
result[:daily].each do |daily|
|
||||
daily[:tag].each_key do |tag|
|
||||
result[:tag][tag] ||= {}
|
||||
|
||||
daily[:tag][tag].each do |key, value|
|
||||
result[:tag][tag][key] ||= 0
|
||||
result[:tag][tag][key] += value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
JSON.pretty_generate(result)
|
||||
end
|
||||
|
||||
|
|
@ -530,6 +543,7 @@ module Vmpooler
|
|||
when 'tags'
|
||||
arg.keys.each do |tag|
|
||||
backend.hset('vmpooler__vm__' + params[:hostname], 'tag:' + tag, arg[tag])
|
||||
backend.hset('vmpooler__tag__' + Date.today.to_s, params[:hostname] + ':' + tag, arg[tag])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue