Exemplo n.º 1
0
 def recv_broadcast(self, objects):
     t = funcs.timer_start()
     for obj in objects:
         scale(obj)
         obj.store(self.storage)
     logger.debug("wrote %d events [walltime: %s]" %
                  (len(objects), funcs.timer_stop(t)))
Exemplo n.º 2
0
def format(metric, value, context):
    if TYPE_SIGNATURE not in context:
        logger.debug("dropping unauthenticated package!")
        return
    elif TYPE_HOST not in context:
        logger.debug("dropping package without host information")
        return
    user = context[TYPE_SIGNATURE]
    host = context[TYPE_HOST]
    plugin = join_("-", context.get(TYPE_PLUGIN), context.get(TYPE_PLUGIN_INSTANCE))
    mtype = join_("-", context.get(TYPE_TYPE), context.get(TYPE_TYPE_INSTANCE))
    key = join_(".", user[0], host, plugin, mtype, context.get(MY_TYPE_SUFFIX))
    if TYPE_TIME_HI in context:
        mtime = context[TYPE_TIME_HI] / float(2 ** 30)
    else:
        mtime = context[TYPE_TIME]
    if metric == DS_COUNTER:
        return Counter(key, value, mtime)
    elif metric == DS_ABSOLUTE:
        return Absolute(key, value, mtime)
    elif metric == DS_DERIVE:
        return Derive(key, value, mtime)
    elif metric == DS_GAUGE:
        return Gauge(key, value, mtime)
    else:
        raise (RuntimeError())
Exemplo n.º 3
0
def format(metric, value, context):
    if (TYPE_SIGNATURE not in context):
        logger.debug("dropping unauthenticated package!")
        return
    elif (TYPE_HOST not in context):
        logger.debug("dropping package without host information")
        return
    user = context[TYPE_SIGNATURE]
    host = context[TYPE_HOST]
    plugin = join_("-", context.get(TYPE_PLUGIN),
                   context.get(TYPE_PLUGIN_INSTANCE))
    mtype = join_("-", context.get(TYPE_TYPE), context.get(TYPE_TYPE_INSTANCE))
    key = join_(".", user[0], host, plugin, mtype, context.get(MY_TYPE_SUFFIX))
    if (TYPE_TIME_HI in context):
        mtime = context[TYPE_TIME_HI] / float(2**30)
    else:
        mtime = context[TYPE_TIME]
    if (metric == DS_COUNTER):
        return (Counter(key, value, mtime))
    elif (metric == DS_ABSOLUTE):
        return (Absolute(key, value, mtime))
    elif (metric == DS_DERIVE):
        return (Derive(key, value, mtime))
    elif (metric == DS_GAUGE):
        return (Gauge(key, value, mtime))
    else:
        raise (RuntimeError())
Exemplo n.º 4
0
 def flush(self):
     if (self.obuffer[0] > 0):
         frame = "".join(self.obuffer[1])
         logger.debug("dmproc: sending frame: %s" % frame)
         self.transport.write(struct.pack("!H", self.obuffer[0]))
         self.transport.write(frame)
         self.obuffer[0] = 0
         self.obuffer[1] = []
Exemplo n.º 5
0
 def flush(self):
     if (self.obuffer[0] > 0):
         frame = "".join(self.obuffer[1])
         logger.debug("dmproc: sending frame: %s" % frame)
         self.transport.write(struct.pack("!H", self.obuffer[0]))
         self.transport.write(frame)
         self.obuffer[0] = 0
         self.obuffer[1] = []
Exemplo n.º 6
0
 def redis_pooling(self):
     data0 = yield self.redis.hgetall("leela.xmpp")
     for (key, conn) in list(self.active.iteritems()):
         if (key not in data0):
             logger.warn("reaping connection: %s" % (key,))
             conn.shutdown()
     for (key, data1) in data0.iteritems():
         data = parser.parse_json(data1)
         if (key not in self.active):
             logger.debug("spawning connection: %s: %s" % (key, data["sender"]))
             conn = Connection(key, xmppim.JID(data["sender"]), data["request"]["select"], self)
             self.core.connect(conn.factory())
Exemplo n.º 7
0
 def send_broadcast(self, events):
     self.wqueue.extend(events)
     logger.debug("send_broadcast: [qlen=%d]" % len(self.wqueue))
     while (len(self.wqueue) > 0 and self.transport is not None):
         e = self.wqueue[:10]
         try:
             self.transport.write(render_storables(e))
             del (self.wqueue[:10])
         except socket.error, se:
             map(lambda x: self.wqueue.insert(0, x), reversed(e))
             if (se.args[0] not in (errno.EWOULDBLOCK, errno.EAGAIN)):
                 self.transport.loseConnection()
             break
Exemplo n.º 8
0
 def send_broadcast(self, events):
     self.wqueue.extend(events)
     logger.debug("send_broadcast: [qlen=%d]" % len(self.wqueue))
     while (len(self.wqueue) > 0 and self.transport is not None):
         e = self.wqueue[:10]
         try:
             self.transport.write(render_storables(e))
             del(self.wqueue[:10])
         except socket.error, se:
             map(lambda x: self.wqueue.insert(0, x), reversed(e))
             if (se.args[0] not in (errno.EWOULDBLOCK, errno.EAGAIN)):
                 self.transport.loseConnection()
             break
Exemplo n.º 9
0
 def onMessage(self, message):
     if (message.body is None):
         return
     sender = xmppim.JID(message.getAttribute("from"))
     req    = parser.parse_sql_(unicode(message.body))
     debug  = {"request": unicode(message.body)}
     resp   = xmppim.Message(recipient = sender).toElement()
     cc     = self.mkcc(resp, debug)
     if (req in [{}, None]):
         logger.debug("message [%s] - 400" % message.body)
         cc(400, {"reason": "parse error"})
     else:
         logger.debug("message [%s] %s - 200" % (message.getAttribute("from"), message.body))
         self.handle_request(req, sender, cc)
Exemplo n.º 10
0
 def datagramReceived(self, data, *args):
     tmp  = []
     msgs = []
     for c in data:
         tmp.append(c)
         if (c == ';'):
             tmp = "".join(tmp)
             x   = None
             if (tmp[0] == 'e'):
                 x = parse_event_(tmp)[0]
             elif (tmp[0] == 'd'):
                 x = parse_data_(tmp)[0]
             if (x is None):
                 logger.debug("error parsing: %s" % tmp)
                 tmp = []
             else:
                 tmp = []
                 msgs.append(x)
     if (len(msgs) > 0):
         for cc in self.callbacks.values():
             cc.recv_broadcast(msgs)
Exemplo n.º 11
0
 def datagramReceived(self, data, *args):
     tmp = []
     msgs = []
     for c in data:
         tmp.append(c)
         if (c == ';'):
             tmp = "".join(tmp)
             x = None
             if (tmp[0] == 'e'):
                 x = parse_event_(tmp)[0]
             elif (tmp[0] == 'd'):
                 x = parse_data_(tmp)[0]
             if (x is None):
                 logger.debug("error parsing: %s" % tmp)
                 tmp = []
             else:
                 tmp = []
                 msgs.append(x)
     if (len(msgs) > 0):
         for cc in self.callbacks.values():
             cc.recv_broadcast(msgs)
Exemplo n.º 12
0
 def recv_metrics(self, metrics):
     logger.debug("recv_metrics: %d" % len(metrics))
     try:
         self.relay.relay(metrics)
     except:
         logger.error("cant relay to peer address")
Exemplo n.º 13
0
 def forward_packet(self, packet):
     logger.debug("forward: %d" % len(packet))
     self.relay.relay(packet)
Exemplo n.º 14
0
 def forward_packet(self, packet):
     logger.debug("forward: %d" % len(packet))
     self.relay.relay(packet)
Exemplo n.º 15
0
 def recv_broadcast(self, objects):
     t = funcs.timer_start()
     for obj in objects:
         scale(obj)
         obj.store(self.storage)
     logger.debug("wrote %d events [walltime: %s]" % (len(objects), funcs.timer_stop(t)))
Exemplo n.º 16
0
 def on_core_recv_status(self, s):
     logger.debug("core_recv_status: %d" % s)
     if (s == 0):
         self._sendmsg(200, {"results": {"key": self.key}})
     else:
         self._sendmsg(500, {"reason": "bad command"})
Exemplo n.º 17
0
 def on_core_recv_event(self, e):
     logger.debug("core_recv_event: %s" % e)
     msg = {"results": {"event": pp.render_storable_to_json(e)}}
     msg.update(pp.render_storable_to_json(e)) # do not break compatibility with previous versions
     self._sendmsg(200, msg)