From 0cc17b87aa2f428f0de9b939e2316f645c23239c Mon Sep 17 00:00:00 2001 From: jiuyunzhao <2307662420@qq.com> Date: Tue, 26 Jul 2022 19:37:48 +0800 Subject: [PATCH] Add cpu usage metric of controller. --- .../schemas/storage_capabilities_schema.py | 12 +++++++++ delfin/drivers/fake_storage/__init__.py | 5 +++- .../performance_collection_handler.py | 2 +- delfin/tests/unit/api/fakes.py | 5 +++- delfin/utils.py | 26 ------------------- 5 files changed, 21 insertions(+), 29 deletions(-) diff --git a/delfin/api/schemas/storage_capabilities_schema.py b/delfin/api/schemas/storage_capabilities_schema.py index 6d1241493..c293d438a 100644 --- a/delfin/api/schemas/storage_capabilities_schema.py +++ b/delfin/api/schemas/storage_capabilities_schema.py @@ -494,6 +494,18 @@ 'maxLength': 255} }, }, + ControllerMetric.CPU_USAGE.name: { + 'type': 'object', + 'properties': { + 'unit': {'type': 'string', + 'enum': [ControllerMetric.CPU_USAGE + .unit] + }, + 'description': {'type': 'string', + 'minLength': 1, + 'maxLength': 255} + }, + } }, 'additionalProperties': False }, diff --git a/delfin/drivers/fake_storage/__init__.py b/delfin/drivers/fake_storage/__init__.py index b30cd7b37..c1c7d37f7 100644 --- a/delfin/drivers/fake_storage/__init__.py +++ b/delfin/drivers/fake_storage/__init__.py @@ -744,7 +744,10 @@ def get_capabilities(context, filters=None): "unit": ControllerMetric.WRITE_IOPS.unit, "description": ControllerMetric.WRITE_IOPS.description }, - + ControllerMetric.CPU_USAGE.name: { + "unit": ControllerMetric.CPU_USAGE.unit, + "description": ControllerMetric.CPU_USAGE.description + } }, ResourceType.PORT: { PortMetric.THROUGHPUT.name: { diff --git a/delfin/task_manager/scheduler/schedulers/telemetry/performance_collection_handler.py b/delfin/task_manager/scheduler/schedulers/telemetry/performance_collection_handler.py index da5f46388..909ceb988 100644 --- a/delfin/task_manager/scheduler/schedulers/telemetry/performance_collection_handler.py +++ b/delfin/task_manager/scheduler/schedulers/telemetry/performance_collection_handler.py @@ -118,7 +118,7 @@ def _handle_task_failure(self, start_time, end_time): if capabilities.get('failed_job_collect_interval'): failed_task_interval = \ - TelemetryCollection.FAILED_JOB_SCHEDULE_INTERVAL + capabilities.get('failed_job_collect_interval') if performance_metric_retention_window: collection_window = performance_metric_retention_window \ diff --git a/delfin/tests/unit/api/fakes.py b/delfin/tests/unit/api/fakes.py index d23acbe42..867337590 100644 --- a/delfin/tests/unit/api/fakes.py +++ b/delfin/tests/unit/api/fakes.py @@ -645,7 +645,10 @@ def fake_get_capabilities(context, storage_id): "unit": ControllerMetric.WRITE_IOPS.unit, "description": ControllerMetric.WRITE_IOPS.description }, - + ControllerMetric.CPU_USAGE.name: { + "unit": ControllerMetric.CPU_USAGE.unit, + "description": ControllerMetric.CPU_USAGE.description + } }, ResourceType.PORT: { PortMetric.THROUGHPUT.name: { diff --git a/delfin/utils.py b/delfin/utils.py index 1722e9933..9ccfcbadd 100644 --- a/delfin/utils.py +++ b/delfin/utils.py @@ -18,16 +18,13 @@ """Utilities and helper functions.""" -import contextlib import functools import inspect import os import pyclbr import random import re -import shutil import sys -import tempfile import threading from eventlet import pools @@ -123,17 +120,6 @@ def create(self): # pylint: disable=method-hidden elif self.password: look_for_keys = False try: - LOG.debug("ssh.connect: ip: %s, port: %s, username: %s, " - "password: %s, key_filename: %s, look_for_keys: %s, " - "timeout: %s, banner_timeout: %s", - self.ip, - self.port, - self.login, - self.password, - self.path_to_private_key, - look_for_keys, - self.conn_timeout, - self.conn_timeout) ssh.connect(self.ip, port=self.port, username=self.login, @@ -310,18 +296,6 @@ def service_is_up(service): return abs(elapsed) <= CONF.service_down_time -@contextlib.contextmanager -def tempdir(**kwargs): - tmpdir = tempfile.mkdtemp(**kwargs) - try: - yield tmpdir - finally: - try: - shutil.rmtree(tmpdir) - except OSError as e: - LOG.debug('Could not remove tmpdir: %s', e) - - def walk_class_hierarchy(clazz, encountered=None): """Walk class hierarchy, yielding most derived classes first.""" if not encountered: