Report devstack node statistics.
Change-Id: I0c7292a7ff1e575bf87e8b03ea16e6eebcadaf19
This commit is contained in:
parent
ccddb61792
commit
edd11f926a
|
@ -36,6 +36,7 @@ def main():
|
|||
if machine.state != vmdatabase.HOLD:
|
||||
machine.state = vmdatabase.DELETE
|
||||
|
||||
utils.update_stats(machine.base_image.provider)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
@ -59,6 +59,7 @@ def main():
|
|||
config = LABEL_RE.sub('<label>devstack-used</label>', config)
|
||||
jenkins.reconfig_node(machine.jenkins_name, config)
|
||||
|
||||
utils.update_stats(machine.base_image.provider)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
@ -195,6 +195,7 @@ def main():
|
|||
error = True
|
||||
|
||||
while True:
|
||||
utils.update_stats(provider)
|
||||
building_machines = provider.building_machines
|
||||
if not building_machines:
|
||||
print "No more machines are building, finished."
|
||||
|
|
|
@ -161,6 +161,7 @@ def main():
|
|||
print 'Known machines (end):'
|
||||
db.print_state()
|
||||
|
||||
utils.update_stats(provider)
|
||||
if error:
|
||||
sys.exit(1)
|
||||
|
||||
|
|
42
utils.py
42
utils.py
|
@ -27,7 +27,9 @@ import traceback
|
|||
import paramiko
|
||||
import socket
|
||||
from sshclient import SSHClient
|
||||
import statsd
|
||||
|
||||
import vmdatabase
|
||||
|
||||
def iterate_timeout(max_seconds, purpose):
|
||||
start = time.time()
|
||||
|
@ -180,3 +182,43 @@ def delete_server(server):
|
|||
|
||||
print "Deleting server", server.id
|
||||
server.delete()
|
||||
|
||||
def update_stats(provider):
|
||||
state_names = {
|
||||
vmdatabase.BUILDING: 'building',
|
||||
vmdatabase.READY: 'ready',
|
||||
vmdatabase.USED: 'used',
|
||||
vmdatabase.ERROR: 'error',
|
||||
vmdatabase.HOLD: 'hold',
|
||||
vmdatabase.DELETE: 'delete',
|
||||
}
|
||||
|
||||
stats = statsd.StatsClient()
|
||||
|
||||
for base_image in provider.base_images:
|
||||
states = {
|
||||
vmdatabase.BUILDING: 0,
|
||||
vmdatabase.READY: 0,
|
||||
vmdatabase.USED: 0,
|
||||
vmdatabase.ERROR: 0,
|
||||
vmdatabase.HOLD: 0,
|
||||
vmdatabase.DELETE: 0,
|
||||
}
|
||||
for machine in base_image.machines:
|
||||
if machine.state not in states:
|
||||
continue
|
||||
states[machine.state] += 1
|
||||
for state_id, count in states.items():
|
||||
key = 'devstack.pool.%s.%s.%s' % (
|
||||
provider.name,
|
||||
base_image.name,
|
||||
state_names[state_id])
|
||||
stats.gauge(key, count)
|
||||
|
||||
key = 'devstack.pool.%s.%s.min_ready' % (
|
||||
provider.name,
|
||||
base_image.name)
|
||||
stats.gauge(key, base_image.min_ready)
|
||||
|
||||
key = 'devstack.pool.%s.max_servers' % provider.name
|
||||
stats.gauge(key, provider.max_servers)
|
||||
|
|
Loading…
Reference in New Issue