code: def track(self, data: Dict[str, SeriesModel]):
      res: Dict[str, SeriesModel] = {}
      for ind, s in data.items():
          ind_split = ind.split(".")
          ind_type = ind_split[0]
          if ind_type == COMPUTEREnums.PROCESS:
              suffix = ind_split[-1]
              process_id = ".".join(ind_split[:-1])
  
              if "name" == suffix:
                  if process_id not in self.process.names:
                      self.process.names[process_id] = s["value"][0]
                  continue
              elif "exe" == suffix:
                  if process_id not in self.process.exes:
                      self.process.exes[process_id] = s["value"][0]
                  continue
              elif "cmdline" == suffix:
                  if process_id not in self.process.cmdlines:
                      self.process.cmdlines[process_id] = s["value"][0]
                  continue
              elif "create_time" == suffix:
                  if process_id not in self.process.create_times:
                      self.process.create_times[process_id] = s[
                          "value"
                      ][0]
                  continue
              elif "pid" == suffix:
                  if process_id not in self.process.pids:
                      self.process.pids[process_id] = s["value"][0]
                  continue
              elif "ppids" == suffix:
                  if process_id not in self.process.ppids:
                      self.process.ppids[process_id] = s["value"][0]
                  continue
              elif "dead" == suffix:
                  if process_id not in self.process.dead:
                      self.process.dead[process_id] = s["value"][0]
                  continue
  
              if "gpu" in process_id:
                  process_id = ".".join(ind_split[:2])
                  gpu_process = ".".join(ind_split[2:4])
  
                  if process_id in self.process.gpu_processes:
                      self.process.gpu_processes[process_id].add(
                          gpu_process
                      )
                  else:
                      self.process.gpu_processes[process_id] = {
                          gpu_process
                      }
  
              res[ind] = s
  
      self.process.track(res, keep_last_24h=True)
      self.clean_dead_processes()
  
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 2 for calling the ProcessAnalysis obj's underlying member method code with example usage: obj.track(data) without return types