def switch_streaming(self, bucket): if self.streaming_bucket: # TODO support switching bucket return delay = struct.pack("B", 5) pname = dproto_tcp.encode_name(bucket) self._send(STREAM_MODE + delay + pname) self.streaming_bucket = bucket
def send_payload(self, metric, ts, value): if self.streaming_bucket is None: raise Exception("cannot send payload outside of stream mode") ptime = struct.pack(PACK_FMT[TIME_SIZE], ts) pmetric = dproto_tcp.encode_name(metric) pmetric_size = struct.pack(PACK_FMT[2], len(pmetric)) pvalue = dproto_tcp.encode_metric_value(value) pvalue_size = struct.pack(PACK_FMT[4], len(pvalue)) self._raw_send(PAYLOAD + ptime + pmetric_size + pmetric + pvalue_size + pvalue)
def list_metrics(self, bucket): packet = dproto_tcp.encode_name(bucket) self._send(LIST_METRICS + packet) binary = self._recv() reply = dproto_tcp.decode_reply(binary, METRICS_SS) return dproto_tcp.decode_metrics(reply)