docs: def start_request(req, collect=False, collector_addr='tcp://127.0.0.2:2345', prefix='my_app'):
      """
      register a request
  
      registers a request in the internal request table, optionally also sends it to the collector
  
      :param req: request, can be mostly any hash-able object
      :param collect: whether to send the request started event to the collector (bool)
      :param collector_addr: collector address, in zeromq format (string, default tcp://127.0.0.2:2345)
      :param prefix: label under which to register the request (string, default my_app)
      """
  
      if collect:
          collector = get_context().socket(zmq.PUSH)
  
          collector.connect(collector_addr)
          collector.send_multipart([prefix, ''])
          collector.close()
  
      requests[hash(req)] = time()