permitRequest.setPermits(permits); permitRequest.setMinPermits((long) this.permitsOutstanding.getAverageWeightOrZero()); if (BatchedPermitsRequester.this.restRequestHistogram != null) {
private PermitRequest createPermitRequest(long permits) { PermitRequest request = new PermitRequest(); request.setPermits(permits); request.setRequestorIdentifier("requestor"); request.setResource("test"); return request; }
@Test public void test() { ThrottlingGuiceServletConfig guiceServletConfig = new ThrottlingGuiceServletConfig(); guiceServletConfig.initialize(ConfigFactory.empty()); Injector injector = guiceServletConfig.getInjector(); LimiterServerResource limiterServer = injector.getInstance(LimiterServerResource.class); PermitRequest request = new PermitRequest(); request.setPermits(10); request.setResource("myResource"); PermitAllocation allocation = limiterServer.getSync(new ComplexResourceKey<>(request, new EmptyRecord())); Assert.assertTrue(allocation.getPermits() >= 10); }
@Test public void testMetrics() throws Exception { ThrottlingGuiceServletConfig guiceServletConfig = new ThrottlingGuiceServletConfig(); guiceServletConfig.initialize(ConfigFactory.empty()); Injector injector = guiceServletConfig.getInjector(); LimiterServerResource limiterServer = injector.getInstance(LimiterServerResource.class); PermitRequest request = new PermitRequest(); request.setPermits(10); request.setResource("myResource"); limiterServer.getSync(new ComplexResourceKey<>(request, new EmptyRecord())); limiterServer.getSync(new ComplexResourceKey<>(request, new EmptyRecord())); limiterServer.getSync(new ComplexResourceKey<>(request, new EmptyRecord())); MetricContext metricContext = limiterServer.metricContext; Timer timer = metricContext.timer(LimiterServerResource.REQUEST_TIMER_NAME); Assert.assertEquals(timer.getCount(), 3); }
res1request.setPermits(20); res1request.setResource(res1key.getResourceLimitedPath()); res2request.setPermits(20); res2request.setResource(res2key.getResourceLimitedPath()); res3request.setPermits(100000); res3request.setResource("res3");
res1request.setPermits(20); res1request.setResource(res1key.getResourceLimitedPath()); invalidRequest.setPermits(20); invalidRequest.setResource("invalidkey");