From 4d018fad98e900d1010fbd594f67b837f585475f Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Sat, 12 Jan 2013 10:35:32 -0800 Subject: [PATCH] Add devstack job stats. Runtime/count stats per: * job * job+branch * job+branch+provider Change-Id: I227a571cd24b32119b067388fe26f53e28ee7277 --- devstack-vm-delete.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/devstack-vm-delete.py b/devstack-vm-delete.py index 2fa07c4d..bedc25c9 100755 --- a/devstack-vm-delete.py +++ b/devstack-vm-delete.py @@ -18,15 +18,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +import json import os import sys import getopt +from statsd import statsd import time +import traceback +import urllib import vmdatabase import utils NODE_NAME = sys.argv[1] +UPSTREAM_BUILD_URL=os.environ.get('UPSTREAM_BUILD_URL', '') +UPSTREAM_JOB_NAME=os.environ.get('UPSTREAM_JOB_NAME', '') +UPSTREAM_BRANCH=os.environ.get('UPSTREAM_BRANCH', '') def main(): @@ -36,7 +43,30 @@ def main(): if machine.state != vmdatabase.HOLD: machine.state = vmdatabase.DELETE - utils.update_stats(machine.base_image.provider) + try: + utils.update_stats(machine.base_image.provider) + + if UPSTREAM_BUILD_URL: + fd = urllib.urlopen(UPSTREAM_BUILD_URL+'api/json') + data = json.load(fd) + result = data['result'] + if result in ['SUCCESS', 'FAILURE']: + dt = int(data['duration']) + + key = 'devstack.job.%s' % UPSTREAM_JOB_NAME + statsd.timing(key, dt) + statsd.incr(key) + + key += '.%s' % UPSTREAM_BRANCH + statsd.timing(key, dt) + statsd.incr(key) + + key += '.%s' % machine.base_image.provider.name + statsd.timing(key, dt) + statsd.incr(key) + except: + print "Error getting build information" + traceback.print_exc() if __name__ == '__main__': main()