Do not log a warning about not using compute monitors

The compute_monitors configuration option is empty by
default, however, on nova-compute startup we get a warning
logged saying:

  Excluding nova.compute.monitors.cpu monitor virt_driver. \
  Not in the list of enabled monitors (CONF.compute_monitors).

This is unnecessary noise in the logs when nova-compute is
not configured to use monitors, so this change avoids the warning
log message in that case.

The compute_monitors configuration option help text is also
updated to (1) fix formatting and (2) remove the mention of the
numa_mem_bw monitor which never made it into nova (see
blueprint memory-bw).

Change-Id: I5bd204e0017f6f795e3cf13b34b75124ee23aa78
Closes-Bug: #1823207
This commit is contained in:
Matt Riedemann 2019-04-04 14:13:16 -04:00
parent 6ebb2c4cae
commit 8795f591d5
3 changed files with 18 additions and 7 deletions

View File

@ -84,8 +84,10 @@ class MonitorHandler(object):
if namespace + '.' + ext.name in cfg_monitors:
self.type_monitor_loaded[namespace] = ext.name
return True
LOG.warning("Excluding %(namespace)s monitor %(monitor_name)s. "
"Not in the list of enabled monitors "
"(CONF.compute_monitors).",
{'namespace': namespace, 'monitor_name': ext.name})
# Only log something if compute_monitors is not empty.
if CONF.compute_monitors:
LOG.warning("Excluding %(namespace)s monitor %(monitor_name)s. "
"Not in the list of enabled monitors "
"(CONF.compute_monitors).",
{'namespace': namespace, 'monitor_name': ext.name})
return False

View File

@ -113,10 +113,10 @@ a time.
Possible values:
* An empty list will disable the feature (Default).
* An example value that would enable both the CPU and NUMA memory
bandwidth monitors that use the virt driver variant:
* An example value that would enable the CPU
bandwidth monitor that uses the virt driver variant::
compute_monitors = cpu.virt_driver, numa_mem_bw.virt_driver
compute_monitors = cpu.virt_driver
"""),
cfg.StrOpt('default_ephemeral_format',
help="""

View File

@ -51,3 +51,12 @@ class MonitorsTestCase(test.NoDBTestCase):
'mon2')
self.assertTrue(handler.check_enabled_monitor(ext_cpu_mon1))
self.assertFalse(handler.check_enabled_monitor(ext_cpu_mon2))
# Run the check but with no monitors enabled to make sure we don't log.
self.flags(compute_monitors=[])
handler = monitors.MonitorHandler(None)
ext_cpu_mon1 = FakeExt('nova.compute.monitors.cpu.virt_driver:Monitor',
'mon1')
with mock.patch.object(monitors.LOG, 'warning') as mock_warning:
self.assertFalse(handler.check_enabled_monitor(ext_cpu_mon1))
mock_warning.assert_not_called()