code: def add_group(self, name: str, extra: str = None) -> "MetricGroup":
      if extra is None:
          return MetricGroupImpl(self._metrics.addGroup(name))
      else:
          return MetricGroupImpl(self._metrics.addGroup(name, extra))
  
file_path: flink/flink-python/pyflink/fn_execution/metrics/embedded/metric_impl.py
imports: from typing import Callable
  from pemja import findClass
  from pyflink.fn_execution.metrics.embedded.counter_impl import CounterImpl
  from pyflink.fn_execution.metrics.embedded.distribution_impl import DistributionImpl
  from pyflink.fn_execution.metrics.embedded.meter_impl import MeterImpl
  from pyflink.metrics import MetricGroup, Counter, Distribution, Meter
label_desc: Use image node_id 2 for calling the MetricGroupImpl obj's underlying member method code with example usage: obj.add_group(name, extra) and returns: MetricGroupImpl, MetricGroupImpl