Esempio n. 1
0
 def test_static_constructor(self):
   gauge = FakeGauge('test').supplies([100000])
   rate = Rate.of(gauge)
   assert rate.name() == 'test_per_1secs'
   rate = Rate.of(gauge, window = Amount(5, Time.MINUTES))
   assert rate.name() == 'test_per_5mins'
   rate = Rate.of(gauge, name = 'holyguacamole')
   assert rate.name() == 'holyguacamole_per_1secs'
   rate = Rate.of(gauge, name = 'holyguacamole', window = Amount(3, Time.HOURS))
   assert rate.name() == 'holyguacamole_per_3hrs'
Esempio n. 2
0
  def test_windowing(self):
    TEN_SECONDS = Amount(10, Time.SECONDS).as_(Time.SECONDS)

    clock = TestClock()
    gauge = FakeGauge('test').supplies([100, 0, 50, 100, 150, 100, 50])
    rate = Rate("foo", gauge, window = Amount(30, Time.SECONDS), clock=clock)

    assert rate.read() == 0

    clock.advance(TEN_SECONDS)
    assert -100.0 / 10 == rate.read()

    clock.advance(TEN_SECONDS)
    assert -50.0 / 20 == rate.read()

    clock.advance(TEN_SECONDS)
    assert 0 == rate.read()

    clock.advance(TEN_SECONDS)
    assert 150.0 / 30 == rate.read()

    clock.advance(TEN_SECONDS)
    assert 50.0 / 30 == rate.read()

    clock.advance(TEN_SECONDS)
    assert -50.0 / 30 == rate.read()
Esempio n. 3
0
 def test_empty(self):
   clock = TestClock()
   gauge = FakeGauge('test').supplies([100000])
   rate = Rate("foo", gauge, window = Amount(30, Time.SECONDS), clock=clock)
   assert rate.read() == 0