code: def __init__(
      self,
      interface: "Interface",
      settings: "SettingsStatic",
      shutdown_event: threading.Event,
  ) -> None:
      self.name: str = self.__class__.__name__.lower()
      self.metrics: List[Metric] = [
          ProcessCpuPercent(settings._stats_pid),
          CpuPercent(),
          ProcessCpuThreads(settings._stats_pid),
      ]
      self.metrics_monitor: MetricsMonitor = MetricsMonitor(
          self.name,
          self.metrics,
          interface,
          settings,
          shutdown_event,
      )
  
imports: import threading
  from collections import deque
  from typing import TYPE_CHECKING, List, Optional
  from .aggregators import aggregate_last, aggregate_mean
  from .asset_registry import asset_registry
  from .interfaces import Interface, Metric, MetricsMonitor
label_desc: Use image node_id 1 to create a new CPU object  with example: obj = CPU(interface, settings, shutdown_event)