class_docstr: Gauges keep the last recorded value and drop everything before.
  
  This corresponds to Prometheus' gauge metric:
  https://prometheus.io/docs/concepts/metric_types/#gauge
  
  Serve-related tags ("deployment", "replica", "application", "route")
  are added automatically if not provided.
  
  .. code-block:: python
  
          @serve.deployment
          class MyDeployment:
              def __init__(self):
                  self.num_requests = 0
                  self.my_gauge = metrics.Gauge(
                      "my_gauge",
                      description=("The current memory usage."),
                      tag_keys=("model",),
                  )
                  self.my_counter.set_default_tags({"model": "123"})
  
              def __call__(self):
                  process = psutil.Process()
                  self.gauge.set(process.memory_info().rss)
  
  Args:
      name: Name of the metric.
      description: Description of the metric.
      tag_keys: Tag keys of the metric.
code: def set_default_tags(self, default_tags: Dict[str, str]):
      super().set_default_tags(
          _add_serve_metric_default_tags(default_tags)
      )
  
imports: from typing import Dict, List, Optional, Tuple, Union
  import ray
  from ray.serve import context
  from ray.util import metrics
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 2 for calling the Gauge obj's underlying member method code with example usage: obj.set_default_tags(default_tags) without return types