class_docstr: CPU usage of the process in percent normalized by the number of CPUs.
class_docstr_tok: ["CPU","usage","of","the","process","in","percent","normalized","by","the","number","of","CPUs","."]
code: def sample(self) -> None:
      # todo: this is what we'd eventually want to do
      # self.samples.append(
      #     (
      #         datetime.datetime.utcnow(),
      #         psutil.Process(self.pid).cpu_percent(),
      #     )
      # )
      if self.process is None:
          self.process = psutil.Process(self.pid)
  
      self.samples.append(
          self.process.cpu_percent() / psutil.cpu_count()
      )
  
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 2 for calling the ProcessCpuPercent obj's underlying member method code with example usage: obj.sample() without return types