code: def testWorkerFailureCount(self):
      self.coordinator.schedule(long_function)
      self._restart(downtime_secs=2, job="worker")
      self.coordinator.schedule(long_function)
  
      self.coordinator.join()
      metric_closure = metric_utils.get_metric_summary(
          "closure_execution"
      )
      self.assertEqual(metric_closure["num"], 2)
      num_failures = metric_utils.get_metric_summary("worker_failures")
      self.assertEqual(num_failures, 1)
      recovery_times = metric_utils.get_metric_summary(
          "server_def_update"
      )
      self.assertEqual(recovery_times["num"], 1)
  
imports: import time
  from tensorflow.python.distribute import multi_process_runner
  from tensorflow.python.distribute import multi_worker_test_base
  from tensorflow.python.distribute import parameter_server_strategy_v2
  from tensorflow.python.distribute.cluster_resolver import cluster_resolver
  from tensorflow.python.distribute.coordinator import cluster_coordinator
  from tensorflow.python.distribute.coordinator import metric_utils
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.eager import test
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.training import coordinator
  from tensorflow.python.training.server_lib import ClusterSpec
label_desc: Use image node_id 7 for calling the MetricUtilsTest obj's underlying member method code with example usage: obj.testWorkerFailureCount() without return types