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)))
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())
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())
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] = []
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())
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
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
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)
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)
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")
def forward_packet(self, packet): logger.debug("forward: %d" % len(packet)) self.relay.relay(packet)
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"})
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)