Timing metrics: iRMC drivers
Adds timing metrics for methods in the boot, inspect, management, power and vendor modules of iRMC drivers. Change-Id: I743da5510f897fdadf87a51ab28270ee618a8649 Closes-Bug: #1611556
This commit is contained in:
parent
5603a215b7
commit
2c76da5f43
@ -20,6 +20,7 @@ import os
|
|||||||
import shutil
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
from ironic_lib import metrics_utils
|
||||||
from ironic_lib import utils as ironic_utils
|
from ironic_lib import utils as ironic_utils
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import importutils
|
from oslo_utils import importutils
|
||||||
@ -47,6 +48,8 @@ except Exception:
|
|||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
METRICS = metrics_utils.get_metrics_logger(__name__)
|
||||||
|
|
||||||
REQUIRED_PROPERTIES = {
|
REQUIRED_PROPERTIES = {
|
||||||
'irmc_deploy_iso': _("Deployment ISO image file name. "
|
'irmc_deploy_iso': _("Deployment ISO image file name. "
|
||||||
"Required."),
|
"Required."),
|
||||||
@ -533,6 +536,7 @@ class IRMCVirtualMediaBoot(base.BootInterface):
|
|||||||
def get_properties(self):
|
def get_properties(self):
|
||||||
return COMMON_PROPERTIES
|
return COMMON_PROPERTIES
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCVirtualMediaBoot.validate')
|
||||||
def validate(self, task):
|
def validate(self, task):
|
||||||
"""Validate the deployment information for the task's node.
|
"""Validate the deployment information for the task's node.
|
||||||
|
|
||||||
@ -557,6 +561,7 @@ class IRMCVirtualMediaBoot(base.BootInterface):
|
|||||||
deploy_utils.validate_image_properties(task.context, d_info,
|
deploy_utils.validate_image_properties(task.context, d_info,
|
||||||
props)
|
props)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCVirtualMediaBoot.prepare_ramdisk')
|
||||||
def prepare_ramdisk(self, task, ramdisk_params):
|
def prepare_ramdisk(self, task, ramdisk_params):
|
||||||
"""Prepares the deploy ramdisk using virtual media.
|
"""Prepares the deploy ramdisk using virtual media.
|
||||||
|
|
||||||
@ -587,6 +592,7 @@ class IRMCVirtualMediaBoot(base.BootInterface):
|
|||||||
|
|
||||||
_setup_deploy_iso(task, ramdisk_params)
|
_setup_deploy_iso(task, ramdisk_params)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCVirtualMediaBoot.clean_up_ramdisk')
|
||||||
def clean_up_ramdisk(self, task):
|
def clean_up_ramdisk(self, task):
|
||||||
"""Cleans up the boot of ironic ramdisk.
|
"""Cleans up the boot of ironic ramdisk.
|
||||||
|
|
||||||
@ -599,6 +605,7 @@ class IRMCVirtualMediaBoot(base.BootInterface):
|
|||||||
"""
|
"""
|
||||||
_cleanup_vmedia_boot(task)
|
_cleanup_vmedia_boot(task)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCVirtualMediaBoot.prepare_instance')
|
||||||
def prepare_instance(self, task):
|
def prepare_instance(self, task):
|
||||||
"""Prepares the boot of instance.
|
"""Prepares the boot of instance.
|
||||||
|
|
||||||
@ -620,6 +627,7 @@ class IRMCVirtualMediaBoot(base.BootInterface):
|
|||||||
root_uuid_or_disk_id = driver_internal_info['root_uuid_or_disk_id']
|
root_uuid_or_disk_id = driver_internal_info['root_uuid_or_disk_id']
|
||||||
self._configure_vmedia_boot(task, root_uuid_or_disk_id)
|
self._configure_vmedia_boot(task, root_uuid_or_disk_id)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCVirtualMediaBoot.clean_up_instance')
|
||||||
def clean_up_instance(self, task):
|
def clean_up_instance(self, task):
|
||||||
"""Cleans up the boot of instance.
|
"""Cleans up the boot of instance.
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
"""
|
"""
|
||||||
iRMC Inspect Interface
|
iRMC Inspect Interface
|
||||||
"""
|
"""
|
||||||
|
from ironic_lib import metrics_utils
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import importutils
|
from oslo_utils import importutils
|
||||||
|
|
||||||
@ -30,6 +30,8 @@ scci = importutils.try_import('scciclient.irmc.scci')
|
|||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
METRICS = metrics_utils.get_metrics_logger(__name__)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
SC2.mib: sc2UnitNodeClass returns NIC type.
|
SC2.mib: sc2UnitNodeClass returns NIC type.
|
||||||
|
|
||||||
@ -142,6 +144,7 @@ class IRMCInspect(base.InspectInterface):
|
|||||||
"""
|
"""
|
||||||
return irmc_common.COMMON_PROPERTIES
|
return irmc_common.COMMON_PROPERTIES
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCInspect.validate')
|
||||||
def validate(self, task):
|
def validate(self, task):
|
||||||
"""Validate the driver-specific inspection information.
|
"""Validate the driver-specific inspection information.
|
||||||
|
|
||||||
@ -155,6 +158,7 @@ class IRMCInspect(base.InspectInterface):
|
|||||||
"""
|
"""
|
||||||
irmc_common.parse_driver_info(task.node)
|
irmc_common.parse_driver_info(task.node)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCInspect.inspect_hardware')
|
||||||
def inspect_hardware(self, task):
|
def inspect_hardware(self, task):
|
||||||
"""Inspect hardware.
|
"""Inspect hardware.
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
"""
|
"""
|
||||||
iRMC Management Driver
|
iRMC Management Driver
|
||||||
"""
|
"""
|
||||||
|
from ironic_lib import metrics_utils
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import importutils
|
from oslo_utils import importutils
|
||||||
|
|
||||||
@ -30,6 +30,8 @@ scci = importutils.try_import('scciclient.irmc.scci')
|
|||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
METRICS = metrics_utils.get_metrics_logger(__name__)
|
||||||
|
|
||||||
# Boot Option Parameters #5 Data2 defined in
|
# Boot Option Parameters #5 Data2 defined in
|
||||||
# Set/Get System Boot Options Command, IPMI spec v2.0.
|
# Set/Get System Boot Options Command, IPMI spec v2.0.
|
||||||
_BOOTPARAM5_DATA2 = {boot_devices.PXE: '0x04',
|
_BOOTPARAM5_DATA2 = {boot_devices.PXE: '0x04',
|
||||||
@ -113,6 +115,7 @@ class IRMCManagement(ipmitool.IPMIManagement):
|
|||||||
"""
|
"""
|
||||||
return irmc_common.COMMON_PROPERTIES
|
return irmc_common.COMMON_PROPERTIES
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCManagement.validate')
|
||||||
def validate(self, task):
|
def validate(self, task):
|
||||||
"""Validate the driver-specific management information.
|
"""Validate the driver-specific management information.
|
||||||
|
|
||||||
@ -127,6 +130,7 @@ class IRMCManagement(ipmitool.IPMIManagement):
|
|||||||
irmc_common.update_ipmi_properties(task)
|
irmc_common.update_ipmi_properties(task)
|
||||||
super(IRMCManagement, self).validate(task)
|
super(IRMCManagement, self).validate(task)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCManagement.set_boot_device')
|
||||||
@task_manager.require_exclusive_lock
|
@task_manager.require_exclusive_lock
|
||||||
def set_boot_device(self, task, device, persistent=False):
|
def set_boot_device(self, task, device, persistent=False):
|
||||||
"""Set the boot device for a node.
|
"""Set the boot device for a node.
|
||||||
@ -177,6 +181,7 @@ class IRMCManagement(ipmitool.IPMIManagement):
|
|||||||
cmd8 = bootparam5 % (data1, data2)
|
cmd8 = bootparam5 % (data1, data2)
|
||||||
ipmitool.send_raw(task, cmd8)
|
ipmitool.send_raw(task, cmd8)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCManagement.get_sensors_data')
|
||||||
def get_sensors_data(self, task):
|
def get_sensors_data(self, task):
|
||||||
"""Get sensors data method.
|
"""Get sensors data method.
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
"""
|
"""
|
||||||
iRMC Power Driver using the Base Server Profile
|
iRMC Power Driver using the Base Server Profile
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from ironic_lib import metrics_utils
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import importutils
|
from oslo_utils import importutils
|
||||||
|
|
||||||
@ -32,6 +34,8 @@ scci = importutils.try_import('scciclient.irmc.scci')
|
|||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
METRICS = metrics_utils.get_metrics_logger(__name__)
|
||||||
|
|
||||||
if scci:
|
if scci:
|
||||||
STATES_MAP = {states.POWER_OFF: scci.POWER_OFF,
|
STATES_MAP = {states.POWER_OFF: scci.POWER_OFF,
|
||||||
states.POWER_ON: scci.POWER_ON,
|
states.POWER_ON: scci.POWER_ON,
|
||||||
@ -83,6 +87,7 @@ class IRMCPower(base.PowerInterface):
|
|||||||
"""
|
"""
|
||||||
return irmc_common.COMMON_PROPERTIES
|
return irmc_common.COMMON_PROPERTIES
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCPower.validate')
|
||||||
def validate(self, task):
|
def validate(self, task):
|
||||||
"""Validate the driver-specific Node power info.
|
"""Validate the driver-specific Node power info.
|
||||||
|
|
||||||
@ -97,6 +102,7 @@ class IRMCPower(base.PowerInterface):
|
|||||||
"""
|
"""
|
||||||
irmc_common.parse_driver_info(task.node)
|
irmc_common.parse_driver_info(task.node)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCPower.get_power_state')
|
||||||
def get_power_state(self, task):
|
def get_power_state(self, task):
|
||||||
"""Return the power state of the task's node.
|
"""Return the power state of the task's node.
|
||||||
|
|
||||||
@ -111,6 +117,7 @@ class IRMCPower(base.PowerInterface):
|
|||||||
ipmi_power = ipmitool.IPMIPower()
|
ipmi_power = ipmitool.IPMIPower()
|
||||||
return ipmi_power.get_power_state(task)
|
return ipmi_power.get_power_state(task)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCPower.set_power_state')
|
||||||
@task_manager.require_exclusive_lock
|
@task_manager.require_exclusive_lock
|
||||||
def set_power_state(self, task, power_state):
|
def set_power_state(self, task, power_state):
|
||||||
"""Set the power state of the task's node.
|
"""Set the power state of the task's node.
|
||||||
@ -124,6 +131,7 @@ class IRMCPower(base.PowerInterface):
|
|||||||
"""
|
"""
|
||||||
_set_power_state(task, power_state)
|
_set_power_state(task, power_state)
|
||||||
|
|
||||||
|
@METRICS.timer('IRMCPower.reboot')
|
||||||
@task_manager.require_exclusive_lock
|
@task_manager.require_exclusive_lock
|
||||||
def reboot(self, task):
|
def reboot(self, task):
|
||||||
"""Perform a hard reboot of the task's node.
|
"""Perform a hard reboot of the task's node.
|
||||||
|
3
releasenotes/notes/bug-1611556-92cbfde5ee7f44d6.yaml
Normal file
3
releasenotes/notes/bug-1611556-92cbfde5ee7f44d6.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Adds timing metrics to iRMC drivers.
|
Loading…
Reference in New Issue
Block a user