rateLimiter letting through more requests that it should?

15 views
Skip to first unread message

mats....@yahoo.com

unread,
Jun 22, 2017, 3:12:17 PM6/22/17
to membrane-monitor
Hi,

I just encountered what seems to be an issue with the rateLimiter interceptor.

I am using it in a serviceProxy to limit the number of requests that are passed on to a backend service which has a rate limit that must not be exceeded.

Even though I have the following in my proxy:

<rateLimiter requestLimit="10" requestLimitDuration="PT60S" />

the backend complains that more than 10 requests per minute are arriving there.

I added a statistics interceptor to the proxy to check this, and found that the proxy indeed lets through more than 10 requests per minute. The rate limit does eventually kick in, but sometimes it takes as many as 15 requests in a minute before the interceptor rejects new requests.

I have included an excerpt from the statistics log below. When the first 429-response occurs, more than 10 requests were passed through in the previous minute. The second onset of 429-responses seems to be in order though.

I reviewed the source code for the interceptor and couldn't find anything suspicious there.

Any ideas what might cause this?

Mats

Log:

200;2017-06-22 14:29:36;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15343;637;
200;2017-06-22 14:29:46;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15056;214;
200;2017-06-22 14:29:57;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15533;796;
200;2017-06-22 14:30:08;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14985;301;
200;2017-06-22 14:30:11;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15346;223;
200;2017-06-22 14:30:18;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15592;238;
200;2017-06-22 14:30:19;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14396;924;
200;2017-06-22 14:30:30;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15260;198;
200;2017-06-22 14:30:31;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15300;632;
200;2017-06-22 14:30:40;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14945;318;
200;2017-06-22 14:30:41;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14996;331;
200;2017-06-22 14:30:43;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14550;904;
200;2017-06-22 14:30:49;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15444;267;
200;2017-06-22 14:30:52;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15567;315;
200;2017-06-22 14:30:52;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15119;1091;
200;2017-06-22 14:31:02;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15136;1013;
200;2017-06-22 14:31:03;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15564;241;
200;2017-06-22 14:31:04;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15564;0;
200;2017-06-22 14:31:12;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15311;491;
200;2017-06-22 14:31:13;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15203;317;
429;2017-06-22 14:31:14;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:15;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:20;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:23;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:24;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:25;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:34;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:35;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:35;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:31:37;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
200;2017-06-22 14:31:44;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15340;678;
200;2017-06-22 14:31:46;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14728;650;
200;2017-06-22 14:31:47;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14735;289;
200;2017-06-22 14:31:47;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14796;662;
200;2017-06-22 14:31:53;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14494;227;
200;2017-06-22 14:31:54;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14724;787;
200;2017-06-22 14:31:55;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15183;719;
200;2017-06-22 14:31:57;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;15578;253;
200;2017-06-22 14:31:58;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14611;1030;
200;2017-06-22 14:32:04;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;text/xml;14704;209;
429;2017-06-22 14:32:05;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:06;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:07;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:09;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:16;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:17;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:17;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:18;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:20;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:20;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:25;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:26;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:27;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:28;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:30;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:31;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:35;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:36;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:36;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:38;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:39;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
429;2017-06-22 14:32:42;//svc:80;GET;q/data.xml;ip-000-00-0-000.internal;example.com;;unknown;;109;0;
Reply all
Reply to author
Forward
0 new messages