Emit the Nova workers metrics even if they never reported

Emit metrics even if one of these workers has never reported its
status. This allows to detect wrong deployment.

Change-Id: I86ed67ae36a26ffaa67f202d9dfc15992410ea86
This commit is contained in:
Swann Croiset 2017-01-10 11:21:47 +01:00
parent 0552c04687
commit 067beab15c
1 changed files with 8 additions and 4 deletions

View File

@ -52,11 +52,16 @@ class NovaStatsPlugin(openstack.CollectdPlugin):
'service': service,
'state': state})
for service in aggregated_workers:
totalw = sum(aggregated_workers[service].values())
for service in set(aggregated_workers.keys()).union(
('compute', 'scheduler', 'conductor', 'cert', 'consoleauth')):
total = sum(aggregated_workers[service].values())
for state in self.states:
prct = (100.0 * aggregated_workers[service][state]) / totalw
prct = 0
if total > 0:
prct = (100.0 * aggregated_workers[service][state]) / total
self.dispatch_value('nova_services_percent', '',
prct,
{'state': state, 'service': service})
@ -64,7 +69,6 @@ class NovaStatsPlugin(openstack.CollectdPlugin):
self.dispatch_value('nova_services', '',
aggregated_workers[service][state],
{'state': state, 'service': service})
servers_details = self.get_objects_details('nova', 'servers')
def groupby(d):