Beispiel #1
0
  def get_connection(self, host):
    # First try to take one out of the pool for this host
    (server, instance) = host
    port = self.ports[host]
    connectionPool = self.connections[host]
    try:
      return connectionPool.pop()
    except KeyError:
      pass #nothing left in the pool, gotta make a new connection

    log.cache("CarbonLink creating a new socket for %s" % str(host))
    connection = socket.socket()
    connection.settimeout(self.timeout)
    try:
      connection.connect( (server, port) )
    except:
      self.last_failure[host] = time.time()
      raise
    else:
      connection.setsockopt( socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1 )
      return connection
Beispiel #2
0
 def set_metadata(self, metric, key, value):
   request = dict(type='set-metadata', metric=metric, key=key, value=value)
   results = self.send_request(request)
   log.cache("CarbonLink set-metadata request received for %s:%s" % (metric, key))
   return results
Beispiel #3
0
 def query(self, metric):
   request = dict(type='cache-query', metric=metric)
   results = self.send_request(request)
   log.cache("CarbonLink cache-query request for %s returned %d datapoints" % (metric, len(results)))
   return results