docs: def consume(self, routingKey, msg):
          """
          Consumer for CaptureBuildStartTime. Gets the build start time.
          """
          builder_info = yield self.master.data.get(("builders", msg['builderid']))
          if self._builder_name_matches(builder_info):
              try:
                  ret_val = self._callback(*self._retValParams(msg))
              except Exception as e:
                  # catching generic exceptions is okay here since we propagate
                  # it
                  raise CaptureCallbackError("%s Exception raised: %s with message: %s" %
                                             (self._err_msg(msg, builder_info['name']),
                                              type(e).__name__, str(e)))
  
              context = self._defaultContext(msg, builder_info['name'])
              post_data = {
                  self._time_type: ret_val
              }
              series_name = "%s-build-times" % builder_info['name']
              yield self._store(post_data, series_name, context)
  
          else:
              yield defer.succeed(None)