code: def test_custom_metrics_default_tags(metric_mock):
      histogram = Histogram(
          "hist",
          description="hist",
          boundaries=[1.0, 2.0],
          tag_keys=("a", "b"),
      ).set_default_tags({"b": "b"})
      histogram._metric = metric_mock
  
      # Check specifying non-default tags.
      histogram.observe(10, tags={"a": "a"})
      metric_mock.record.assert_called_with(
          10, tags={"a": "a", "b": "b"}
      )
  
      # Check overriding default tags.
      tags = {"a": "10", "b": "c"}
      histogram.observe(8, tags=tags)
      metric_mock.record.assert_called_with(8, tags=tags)
  
imports: import signal
  import json
  import os
  import pathlib
  import sys
  import requests
  from pprint import pformat
  from unittest.mock import MagicMock
  import numpy
  import pytest
  import ray
  from ray.util.state import list_nodes
  from ray._private.metrics_agent import PrometheusServiceDiscoveryWriter
  from ray._private.ray_constants import PROMETHEUS_SERVICE_DISCOVERY_FILE
  from ray._private.test_utils import SignalActor, fetch_prometheus, fetch_prometheus_metrics, get_log_batch, wait_for_condition, raw_metrics
  from ray.autoscaler._private.constants import AUTOSCALER_METRIC_PORT
  from ray.dashboard.consts import DASHBOARD_METRIC_PORT
  from ray.util.metrics import Counter, Gauge, Histogram
label_desc: Use image node_id 11 for calling a global function with example usage: test_custom_metrics_default_tags(metric_mock) without return types