class_docstr: A thread safe queue for sending metrics to SageMaker.
  
  Args:
      trial_component_name (str): the ARN of the resource
      metric_name (str): the name of the metric
      metrics_client (boto_client): the boto client for SageMaker Metrics service
class_docstr_tok: ["A","thread","safe","queue","for","sending","metrics","to","SageMaker",".","Args",":","trial_component_name","(","str",")",":","the","ARN","of","the","resource","metric_name","(","str",")",":","the","name","of","the","metric","metrics_client","(","boto_client",")",":","the","boto","client","for","SageMaker","Metrics","service"]
code: def __init__(self, trial_component_name, metric_name, metrics_client):
      # infinite queue size
      self._queue = queue.Queue()
      self._buffer = []
      self._thread = threading.Thread(target=self._run)
      self._started = False
      self._finished = False
      self._trial_component_name = trial_component_name
      self._metrics_client = metrics_client
      self._metric_name = metric_name
      self._logged_metrics = 0
  
imports: from __future__ import absolute_import
  import datetime
  import logging
  import os
  import time
  import threading
  import queue
  import dateutil.tz
  from sagemaker.session import Session
label_desc: Use image node_id 1 to create a new _MetricQueue object from inherited base classes: object with example: obj = _MetricQueue(trial_component_name, metric_name, metrics_client)