code: def send(path):
      """
      Side effect: Removes the report after sending it.
  
      The report is generated and stored in a temporary file, see:
      `collect_and_send_report`. Sending happens on another process,
      thus, the need of removing such file afterwards.
      """
      import requests
  
      url = os.environ.get(
          DVC_ANALYTICS_ENDPOINT, "https://analytics.dvc.org"
      )
      headers = {"content-type": "application/json"}
  
      with open(path, encoding="utf-8") as fobj:
          report = json.load(fobj)
  
      report.update(_runtime_info())
  
      logger.debug("uploading report to %s", url)
      logger.trace("Sending %s to %s", report, url)
  
      try:
          requests.post(url, json=report, headers=headers, timeout=5)
      except requests.exceptions.RequestException as e:
          logger.trace("", exc_info=True)
          logger.debug("failed to send analytics report %s", str(e))
  
      logger.trace("removing report %s", path)
      os.remove(path)
  
file_path: dvc/dvc/analytics.py
imports: import json
  import os
  from dvc.log import logger
  from .env import DVC_ANALYTICS_ENDPOINT, DVC_NO_ANALYTICS
label_desc: Use image node_id 3 for calling a global function with example usage: send(path) without return types