def test_init_path_stats(): stats = TestablePerPathAccumulators(aggregation_depth=1) stats.start() cur_stats = stats.cur_stats() assert "writes" in cur_stats assert "/" in cur_stats["writes"] assert "writesBytes" in cur_stats assert "/" in cur_stats["writesBytes"] assert "reads" in cur_stats assert "/" in cur_stats["reads"] assert "readsBytes" in cur_stats assert "/" in cur_stats["readsBytes"] assert "total" in cur_stats assert "/writes" in cur_stats["total"] assert "/writeBytes" in cur_stats["total"] assert "/reads" in cur_stats["total"] assert "/readBytes" in cur_stats["total"] #add some traffic zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "set_data", 1) #writes for / should stay 0 assert cur_stats["writes"]["/"] == 0 assert cur_stats["total"]["/writes"] == 20 stats.stop()
def test_init_path_stats(): stats = TestablePerPathAccumulators(aggregation_depth=1) stats.start() cur_stats = stats.cur_stats() assert "writes" in cur_stats assert "/" in cur_stats["writes"] assert "writesBytes" in cur_stats assert "/" in cur_stats["writesBytes"] assert "reads" in cur_stats assert "/" in cur_stats["reads"] assert "readsBytes" in cur_stats assert "/" in cur_stats["readsBytes"] assert "total" in cur_stats assert "/writes" in cur_stats["total"] assert "/writeBytes" in cur_stats["total"] assert "/reads" in cur_stats["total"] assert "/readBytes" in cur_stats["total"] #add some traffic zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "set_data", 1) #writes for / should stay 0 assert cur_stats["writes"]["/"] == 0 assert cur_stats["total"]["/writes"] == 20 stats.stop()
def get_sniffer(request_handler, reply_handler=None, event_handler=None): config = SnifferConfig() config.track_replies = True sniffer = Sniffer(config) sniffer.add_request_handler(request_handler) if reply_handler: sniffer.add_reply_handler(reply_handler) if event_handler: sniffer.add_event_handler(event_handler) return sniffer
def get_sniffer(request_handler, reply_handler=None, event_handler=None): config = SnifferConfig() config.track_replies = True sniffer = Sniffer(config) sniffer.add_request_handler(request_handler) if reply_handler: sniffer.add_reply_handler(reply_handler) if event_handler: sniffer.add_event_handler(event_handler) return sniffer
def test_per_path_stats(): stats = TestablePerPathAccumulators(aggregation_depth=1) stats.start() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "set_data", NUMBER_OF_REQUESTS_SET_DATA) assert cur_stats["writes"]["/load-testing"] == 20 assert cur_stats["SetDataRequest"]["/load-testing"] == 20 stats.stop()
def test_per_path_stats(): stats = TestablePerPathAccumulators(aggregation_depth=1) stats.start() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "set_data", NUMBER_OF_REQUESTS_SET_DATA) assert cur_stats["writes"]["/load-testing"] == 20 assert cur_stats["SetDataRequest"]["/load-testing"] == 20 stats.stop()
def test_aggregation_depth(): stats = AccumulatedStats(StatsConfig(aggregation_depth=1)) zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) consume_packets('set_data', zkt) assert stats.global_stats.ops_written == 20 assert stats.global_stats.by_op_counters[OpCodes.SETDATA] == 20 # Did aggregation work? assert stats.by_path["/load-testing"].ops_written == 20 assert stats.by_path["/load-testing"].by_op_counters[OpCodes.SETDATA] == 20
def get_sniffer(printer, with_pings=True): config = SnifferConfig() config.track_replies = True if with_pings: config.include_pings() sniffer = Sniffer(config) sniffer.add_request_handler(printer.request_handler) sniffer.add_reply_handler(printer.reply_handler) sniffer.add_event_handler(printer.event_handler) return sniffer
def test_watches(): stats = TestablePerPathAccumulators(aggregation_depth=1) stats.start() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "getdata_watches", NUMBER_OF_REQUESTS_WATCHES) assert cur_stats["watches"]["/test"] == 2 assert cur_stats["GetDataRequest"]["/test"] == 2 assert cur_stats["GetChildrenRequest"]["/test"] == 2 stats.stop()
def test_aggregation_depth(): stats = AccumulatedStats(StatsConfig(aggregation_depth=1)) zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) consume_packets('set_data', zkt) assert stats.global_stats.ops_written == 20 assert stats.global_stats.by_op_counters[OpCodes.SETDATA] == 20 # Did aggregation work? assert stats.by_path["/load-testing"].ops_written == 20 assert stats.by_path["/load-testing"].by_op_counters[OpCodes.SETDATA] == 20
def get_sniffer(printer, with_pings=True): config = SnifferConfig() config.track_replies = True if with_pings: config.include_pings() sniffer = Sniffer(config) sniffer.add_request_handler(printer.request_handler) sniffer.add_reply_handler(printer.reply_handler) sniffer.add_event_handler(printer.event_handler) return sniffer
def test_watches(): stats = TestablePerPathAccumulators(aggregation_depth=1) stats.start() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "getdata_watches", NUMBER_OF_REQUESTS_WATCHES) assert cur_stats["watches"]["/test"] == 2 assert cur_stats["GetDataRequest"]["/test"] == 2 assert cur_stats["GetChildrenRequest"]["/test"] == 2 stats.stop()
def test_per_path_stats_aggregated(): stats = TestablePerPathAccumulators(aggregation_depth=2) stats.start() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "set_data", NUMBER_OF_REQUESTS_SET_DATA) for i in range(0, 5): assert cur_stats["writes"]["/load-testing/%d" % (i)] == 4 assert cur_stats["SetDataRequest"]["/load-testing/%d" % (i)] == 4 assert cur_stats["total"]["/writes"] == 20 assert cur_stats["total"]["/reads"] == 16 stats.stop()
def test_aggregation_depth(): datapoints = PerPathDatapoints() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(datapoints.handle_request) consume_packets('set_data', zkt) d = datapoints.sum_minute() assert d['global']['ops_written'] == 20 assert d['global']['by_op_counters']['SetDataRequest'] == 20 for i in range(0, 4): assert d['paths']['/load-testing/%d' % (i)]['ops_written'] == 4 assert d['paths']['/load-testing/%d' % (i)]['by_op_counters']['SetDataRequest'] == 4
def test_per_path_stats_aggregated(): stats = TestablePerPathAccumulators(aggregation_depth=2) stats.start() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) cur_stats = wait_for_stats(zkt, stats, "set_data", NUMBER_OF_REQUESTS_SET_DATA) for i in range(0, 5): assert cur_stats["writes"]["/load-testing/%d" % (i)] == 4 assert cur_stats["SetDataRequest"]["/load-testing/%d" % (i)] == 4 assert cur_stats["total"]["/writes"] == 20 assert cur_stats["total"]["/reads"] == 16 stats.stop()
def test_aggregation_depth(): datapoints = PerPathDatapoints() zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(datapoints.handle_request) consume_packets('set_data', zkt) d = datapoints.sum_minute() assert d['global']['ops_written'] == 20 assert d['global']['by_op_counters']['SetDataRequest'] == 20 for i in range(0, 4): assert d['paths']['/load-testing/%d' % (i)]['ops_written'] == 4 assert d['paths']['/load-testing/%d' % (i)]['by_op_counters']['SetDataRequest'] == 4
def test_setwatches(): requests = [] def handler(request): if isinstance(request, SetWatchesRequest): requests.append(request) sniffer = Sniffer(SnifferConfig()) sniffer.add_request_handler(handler) consume_packets('setwatches', sniffer) assert len(requests) == 1 req = requests[0] assert len(req.child) == 5 assert "/foo" in req.child assert "/in" in req.child assert "/zookeeper" in req.child assert "/in/portland" in req.child assert "/" in req.child
def test_setwatches(): requests = [] def handler(request): if isinstance(request, SetWatchesRequest): requests.append(request) sniffer = Sniffer(SnifferConfig()) sniffer.add_request_handler(handler) consume_packets('setwatches', sniffer) assert len(requests) == 1 req = requests[0] assert len(req.child) == 5 assert "/foo" in req.child assert "/in" in req.child assert "/zookeeper" in req.child assert "/in/portland" in req.child assert "/" in req.child
def _test_requests_replies(pcap_name, request_cls, reply_cls, nreqs, nreps): requests = [] replies = [] def handler(msg): if isinstance(msg, request_cls): requests.append(msg) elif isinstance(msg, reply_cls): replies.append(msg) config = SnifferConfig() config.track_replies = True sniffer = Sniffer(config) sniffer.add_request_handler(handler) sniffer.add_reply_handler(handler) consume_packets(pcap_name, sniffer) assert len(requests) == nreqs assert len(replies) == nreps sniffer.stop()
def _test_requests_replies(pcap_name, request_cls, reply_cls, nreqs, nreps): requests = [] replies = [] def handler(msg): if isinstance(msg, request_cls): requests.append(msg) elif isinstance(msg, reply_cls): replies.append(msg) config = SnifferConfig() config.track_replies = True sniffer = Sniffer(config) sniffer.add_request_handler(handler) sniffer.add_reply_handler(handler) consume_packets(pcap_name, sniffer) assert len(requests) == nreqs assert len(replies) == nreps sniffer.stop()
def default_sniffer(aggregation_depth=1): stats = PerPathStatsAccumulator(aggregation_depth=aggregation_depth) sniffer = Sniffer(SnifferConfig()) sniffer.add_request_handler(stats.update_request_stats) return (sniffer, stats)
def default_sniffer(aggregation_depth=1): stats = PerPathStatsAccumulator(aggregation_depth=aggregation_depth) sniffer = Sniffer(SnifferConfig()) sniffer.add_request_handler(stats.update_request_stats) return (sniffer, stats)
def default_zkt(): stats = AccumulatedStats(StatsConfig()) zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) return (zkt, stats)
def default_zkt(): stats = AccumulatedStats(StatsConfig()) zkt = Sniffer(SnifferConfig()) zkt.add_request_handler(stats.handle_request) return (zkt, stats)