class_docstr: An implementation of Stats.Timer() which records the result in the OTel Metrics Map.
  
  OpenTelemetry does not have a native timer, we will store the values as a Gauge.
  
  :param name: The name of the timer.
  :param tags: Tags to append to the timer.
class_docstr_tok: ["An","implementation","of","Stats.Timer","(",")","which","records","the","result","in","the","OTel","Metrics","Map",".","OpenTelemetry","does","not","have","a","native","timer",",","we","will","store","the","values","as","a","Gauge",".",":","param","name",":","The","name","of","the","timer",".",":","param","tags",":","Tags","to","append","to","the","timer","."]
code: def __init__(
      self,
      otel_logger: SafeOtelLogger,
      name: str | None,
      tags: Attributes,
  ):
      super().__init__()
      self.otel_logger = otel_logger
      self.name = name
      self.tags = tags
  
imports: from __future__ import annotations
  import datetime
  import logging
  import random
  import warnings
  from functools import partial
  from typing import TYPE_CHECKING, Callable, Iterable, Union
  from opentelemetry import metrics
  from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
  from opentelemetry.metrics import Observation
  from opentelemetry.sdk.metrics import MeterProvider
  from opentelemetry.sdk.metrics._internal.export import ConsoleMetricExporter, PeriodicExportingMetricReader
  from opentelemetry.sdk.resources import SERVICE_NAME, Resource
  from airflow.configuration import conf
  from airflow.metrics.protocols import Timer
  from airflow.metrics.validators import OTEL_NAME_MAX_LENGTH, AllowListValidator, ListValidator, get_validator, stat_name_otel_handler
label_desc: Use image node_id 1 to create a new _OtelTimer object from inherited base classes: Timer with example: obj = _OtelTimer(otel_logger, name, tags)