Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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()
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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
Exemplo n.º 12
0
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()
Exemplo n.º 13
0
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()
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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()
Exemplo n.º 16
0
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
Exemplo n.º 17
0
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
Exemplo n.º 18
0
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
Exemplo n.º 19
0
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()
Exemplo n.º 20
0
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()
Exemplo n.º 21
0
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)
Exemplo n.º 22
0
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)
Exemplo n.º 23
0
def default_zkt():
  stats = AccumulatedStats(StatsConfig())
  zkt = Sniffer(SnifferConfig())
  zkt.add_request_handler(stats.handle_request)
  return (zkt, stats)
Exemplo n.º 24
0
def default_zkt():
    stats = AccumulatedStats(StatsConfig())
    zkt = Sniffer(SnifferConfig())
    zkt.add_request_handler(stats.handle_request)
    return (zkt, stats)