code: def get_tracking(self):
      res = {}
      zero_cpu_processes = {}
      for ind, track in self.process.tracking.items():
          ind_split = ind.split(".")
          process_id = ".".join(ind_split[:-1])
  
          dead = self.process.dead.get(process_id, 0)
          if dead:
              continue
  
          if process_id not in res:
              res[process_id] = {
                  "process_id": process_id,
                  "dead": dead,
                  "pid": self.process.pids.get(process_id, 0),
                  "name": self.process.names.get(process_id, ""),
                  "is_zero_cpu": False,
              }
  
          suffix = ind_split[-1]
          if suffix in ["cpu", "rss"]:
              s = Series().load(track)
  
              # TODO better not to cache this and avoid smoothing for zero cpu processes
              if suffix == "cpu" and s.summary["mean"] < ALMOST_ZERO:
                  zero_cpu_processes[process_id] = res[process_id]
                  res[process_id]["is_zero_cpu"] = True
  
              series: Dict[str, Any] = s.detail
              res[process_id][suffix] = series
  
      ret = []
      for k, v in res.items():
          if v["is_zero_cpu"] or "cpu" not in v or "rss" not in v:
              continue
  
          ret.append(v)
  
      ret.sort(key=lambda s: s["cpu"]["smoothed"][-1], reverse=True)
  
      summary = []
      for v in ret[:5]:
          v["cpu"]["name"] = v["name"]
          summary.append(v["cpu"])
  
      self.process.zero_cpu_processes = zero_cpu_processes
      self.process.save()
  
      return ret, summary
  
imports: from typing import Dict, Set, Any
  from fastapi import Request
  from fastapi.responses import JSONResponse
  from labml_db import Model, Index
  from labml_db.serializer.pickle import PickleSerializer
  from labml_app.logger import logger
  from labml_app.enums import COMPUTEREnums
  from ..analysis import Analysis
  from ..series import SeriesModel, Series
  from ..series_collection import SeriesCollection
  from ..preferences import Preferences
label_desc: Use image node_id 4 for calling the ProcessAnalysis obj's underlying member method code with example usage: obj.get_tracking() and returns: ret,  summary