code: def get_tracking(self):
      res = []
      is_series_updated = False
      for ind, track in self.metrics.tracking.items():
          name = ind.split(".")
  
          s = Series().load(track)
          series: Dict[str, Any] = s.detail
          series["name"] = ".".join(name)
  
          if s.is_smoothed_updated:
              self.metrics.tracking[ind] = s.to_data()
              is_series_updated = True
  
          res.append(series)
  
      if is_series_updated:
          self.metrics.save()
  
      res.sort(key=lambda s: s["name"])
  
      return res
  
imports: from typing import Dict, Any, List, Optional
  from fastapi import Request
  from fastapi.responses import JSONResponse
  from labml_db import Model, Index, load_keys
  from labml_db.serializer.pickle import PickleSerializer
  from labml_db.serializer.yaml import YamlSerializer
  from labml_app.logger import logger
  from labml_app import utils
  from labml_app.enums import INDICATORS
  from .distributed_metrics import get_merged_dist_metrics_tracking, set_merged_metrics_preferences, get_merged_metrics_preferences
  from ..analysis import Analysis
  from ..series import SeriesModel, Series
  from ..series_collection import SeriesCollection
  from ..preferences import Preferences
  from labml_app.settings import INDICATOR_LIMIT
  from ...db import run
label_desc: Use image node_id 3 for calling the MetricsAnalysis obj's underlying member method code with example usage: obj.get_tracking() and returns: res