code: def test_device_stats_monitor_tpu(tmpdir):
      """Test TPU stats are logged using a logger."""
      model = BoringModel()
      device_stats = DeviceStatsMonitor()
      trainer = Trainer(
          default_root_dir=tmpdir,
          max_epochs=2,
          limit_train_batches=5,
          accelerator="tpu",
          devices="auto",
          log_every_n_steps=1,
          callbacks=[device_stats],
          logger=AssertTpuMetricsLogger(tmpdir),
          enable_checkpointing=False,
          enable_progress_bar=False,
      )
      trainer.fit(model)
  
imports: import csv
  import os
  import re
  from typing import Dict, Optional
  from unittest import mock
  from unittest.mock import Mock
  import pytest
  import torch
  from lightning.pytorch import Trainer
  from lightning.pytorch.accelerators.cpu import _CPU_PERCENT, _CPU_SWAP_PERCENT, _CPU_VM_PERCENT, get_cpu_stats
  from lightning.pytorch.callbacks import DeviceStatsMonitor
  from lightning.pytorch.callbacks.device_stats_monitor import _prefix_metric_keys
  from lightning.pytorch.demos.boring_classes import BoringModel
  from lightning.pytorch.loggers import CSVLogger
  from lightning.pytorch.utilities.exceptions import MisconfigurationException
  from lightning.pytorch.utilities.rank_zero import rank_zero_only
  from tests_pytorch.helpers.runif import RunIf
label_desc: Use image node_id 3 for calling a global function with example usage: test_device_stats_monitor_tpu(tmpdir) without return types