Merge "Update dib stats"
This commit is contained in:
commit
ba8dd4a354
|
@ -407,7 +407,27 @@ Nodepool builder
|
||||||
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.<ext>.size
|
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.<ext>.size
|
||||||
:type: gauge
|
:type: gauge
|
||||||
|
|
||||||
This stat reports the size of the built image in bytes.
|
This stat reports the size of the built image in bytes. ``ext`` is
|
||||||
|
based on the formats of the images created for the build, for
|
||||||
|
example ``qcow2``, ``raw``, ``vhd``, etc.
|
||||||
|
|
||||||
|
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.status.rc
|
||||||
|
:type: gauge
|
||||||
|
|
||||||
|
Return code of the last DIB run. Zero is successful, non-zero is
|
||||||
|
unsuccessful.
|
||||||
|
|
||||||
|
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.status.duration
|
||||||
|
:type: timer
|
||||||
|
|
||||||
|
Time the last DIB run for this image build took, in ms
|
||||||
|
|
||||||
|
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.status.last_build
|
||||||
|
:type: gauge
|
||||||
|
|
||||||
|
The UNIX timestamp of the last time a build for this image
|
||||||
|
returned. This can be useful for presenting a relative time ("X
|
||||||
|
hours ago") in a dashboard.
|
||||||
|
|
||||||
.. zuul:stat:: nodepool.image_update.<image name>.<provider name>
|
.. zuul:stat:: nodepool.image_update.<image name>.<provider name>
|
||||||
:type: counter, timer
|
:type: counter, timer
|
||||||
|
@ -415,16 +435,6 @@ Nodepool builder
|
||||||
Number of image uploads to a specific provider in the cloud plus the time in
|
Number of image uploads to a specific provider in the cloud plus the time in
|
||||||
seconds spent to upload the image.
|
seconds spent to upload the image.
|
||||||
|
|
||||||
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.<ext>.rc
|
|
||||||
:type: gauge
|
|
||||||
|
|
||||||
Return code of the DIB.
|
|
||||||
|
|
||||||
.. zuul:stat:: nodepool.dib_image_build.<diskimage_name>.<ext>.duration
|
|
||||||
:type: timer
|
|
||||||
|
|
||||||
Time the DIB run took in ms
|
|
||||||
|
|
||||||
Nodepool launcher
|
Nodepool launcher
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -915,12 +915,13 @@ class BuildWorker(BaseWorker):
|
||||||
|
|
||||||
if self._statsd:
|
if self._statsd:
|
||||||
# report result to statsd
|
# report result to statsd
|
||||||
for ext in img_types.split(','):
|
key_base = 'nodepool.dib_image_build.%s.status' % (
|
||||||
key_base = 'nodepool.dib_image_build.%s.%s' % (
|
diskimage.name)
|
||||||
diskimage.name, ext)
|
|
||||||
pipeline.gauge(key_base + '.rc', rc)
|
|
||||||
pipeline.timing(key_base + '.duration',
|
pipeline.timing(key_base + '.duration',
|
||||||
int(build_time * 1000))
|
int(build_time * 1000))
|
||||||
|
pipeline.gauge(key_base + '.rc', rc)
|
||||||
|
pipeline.gauge(key_base + '.last_build',
|
||||||
|
int(time.time()))
|
||||||
pipeline.send()
|
pipeline.send()
|
||||||
|
|
||||||
return build_data
|
return build_data
|
||||||
|
|
|
@ -309,10 +309,11 @@ class TestNodePoolBuilder(tests.DBTestCase):
|
||||||
self.waitForImage('fake-provider', 'fake-image')
|
self.waitForImage('fake-provider', 'fake-image')
|
||||||
# Make sure our cleanup worker properly removes the first build.
|
# Make sure our cleanup worker properly removes the first build.
|
||||||
self.waitForBuildDeletion('fake-image', '0000000001')
|
self.waitForBuildDeletion('fake-image', '0000000001')
|
||||||
self.assertReportedStat('nodepool.dib_image_build.fake-image.qcow2.rc',
|
self.assertReportedStat('nodepool.dib_image_build.'
|
||||||
|
'fake-image.status.rc',
|
||||||
'127', 'g')
|
'127', 'g')
|
||||||
self.assertReportedStat('nodepool.dib_image_build.'
|
self.assertReportedStat('nodepool.dib_image_build.'
|
||||||
'fake-image.qcow2.duration', None, 'ms')
|
'fake-image.status.duration', None, 'ms')
|
||||||
|
|
||||||
def test_diskimage_build_only(self):
|
def test_diskimage_build_only(self):
|
||||||
configfile = self.setup_config('node_diskimage_only.yaml')
|
configfile = self.setup_config('node_diskimage_only.yaml')
|
||||||
|
@ -323,12 +324,15 @@ class TestNodePoolBuilder(tests.DBTestCase):
|
||||||
|
|
||||||
self.assertEqual(build_tar._formats, ['tar'])
|
self.assertEqual(build_tar._formats, ['tar'])
|
||||||
self.assertEqual(build_default._formats, ['qcow2'])
|
self.assertEqual(build_default._formats, ['qcow2'])
|
||||||
self.assertReportedStat('nodepool.dib_image_build.fake-image.tar.rc',
|
self.assertReportedStat('nodepool.dib_image_build.'
|
||||||
|
'fake-image.status.rc',
|
||||||
'0', 'g')
|
'0', 'g')
|
||||||
self.assertReportedStat('nodepool.dib_image_build.'
|
self.assertReportedStat('nodepool.dib_image_build.'
|
||||||
'fake-image.tar.duration', None, 'ms')
|
'fake-image.status.duration', None, 'ms')
|
||||||
self.assertReportedStat('nodepool.dib_image_build.'
|
self.assertReportedStat('nodepool.dib_image_build.'
|
||||||
'fake-image.tar.size', '4096', 'g')
|
'fake-image.tar.size', '4096', 'g')
|
||||||
|
self.assertReportedStat('nodepool.dib_image_build.'
|
||||||
|
'fake-image.status.last_build', None, 'g')
|
||||||
|
|
||||||
def test_diskimage_build_formats(self):
|
def test_diskimage_build_formats(self):
|
||||||
configfile = self.setup_config('node_diskimage_formats.yaml')
|
configfile = self.setup_config('node_diskimage_formats.yaml')
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- The diskimage-builder stats have been reworked to be more useful.
|
||||||
|
The return code and duration is now stored in
|
||||||
|
``nodepool.dib_image-build.<diskimage_name>.status.<rc|duration>``;
|
||||||
|
previously this was split for each image format. This is
|
||||||
|
unnecessary and confusing since the results will always be the
|
||||||
|
same, since all formats are generated from the same
|
||||||
|
diskimage-builder run. An additional gauge
|
||||||
|
``nodepool.dib_image_build.<diskimage_name>.status.last_build`` is
|
||||||
|
added to make it easy to show relative time of builds in
|
||||||
|
dashboards.
|
Loading…
Reference in New Issue