code: def _init(self):
      # Prometheus metric name must match the regex `[a-zA-Z_:][a-zA-Z0-9_:]*`
      # `.` is a common character in metrics, so here replace it with `:`
      self._name = self._name.replace(".", ":")
      self._tag_keys = self._tag_keys + (
          "host",
          "pid",
      )
      self._tags = {"host": socket.gethostname(), "pid": os.getpid()}
      try:
          self._metric = (
              pc.Gauge(self._name, self._description, self._tag_keys)
              if pc
              else None
          )
      except ValueError:  # pragma: no cover
          self._metric = None
  
imports: import os
  import socket
  from typing import Optional, Dict
  from ....utils import lazy_import
  from ..metric import AbstractMetric, AbstractCounter, AbstractGauge, AbstractMeter, AbstractHistogram
label_desc: Use image node_id 1 for calling the PrometheusMetricMixin obj's underlying member method code with example usage: obj._init() without return types