code: def probe(self) -> dict:
      disk_paths = list(self.settings._stats_disk_paths or ["/"])
      disk_metrics = {}
      for disk_path in disk_paths:
          try:
              # total disk space in GB:
              total = (
                  psutil.disk_usage(disk_path).total
                  / 1024
                  / 1024
                  / 1024
              )
              # total disk space used in GB:
              used = (
                  psutil.disk_usage(disk_path).used / 1024 / 1024 / 1024
              )
              disk_metrics[disk_path] = {
                  "total": total,
                  "used": used,
              }
          except Exception as e:  # noqa
              termwarn(
                  f"Could not access disk path {disk_path}: {e}",
                  repeat=False,
              )
  
      return {self.name: disk_metrics}
  
imports: import threading
  from collections import deque
  from typing import TYPE_CHECKING, List, Optional
  from wandb.errors.term import termwarn
  from .aggregators import aggregate_mean
  from .asset_registry import asset_registry
  from .interfaces import Interface, Metric, MetricsMonitor
label_desc: Use image node_id 3 for calling the Disk obj's underlying member method code with example usage: obj.probe() and returns: dict