Is there a way to disable the smoothing logic in Apigee spike arrest

So I have been given a requirement to see if it is even possible to disable the smoothing logic of the spike arrest. we have the spike arrest of 2TPS and the smoothing logic of Apigee of not allowing the 2nd request within 500 ms is causing issues at the partners.

Is this even possible. Other API gateway such as Axway implement it without the smoothing logic , hence.

Any suggestion is highly appreciated.

0 5 235
5 REPLIES 5

the smoothing logic of Apigee of not allowing the 2nd request within 500 ms is causing issues at the partners.

Can you explain in more detail about "the issues"? and also can you describe specifically what would you like the spike arrest behavior to be?

If your partners do not like the 2TPS limit, have you considered raising the limit?

So the partners have the 2 TPS limit and they like it. Problem is they sometimes hit 2 TPS within the 500ms and although their monitoring is showing it is 2 TPS Apigee on the other hand is rejecting the 2nd request because it within 500 ms, resulting in a failure on their end. Is there a way to remove this smoothing logic in Apigee or is there a way to add custom logic to bypass this in apigee so that it rejects the 3rd txn within the second but allows 2 txn no matter which segment of the time slice it falls into.

@Dino-at-Google The intent is to allow 2 parallel calls at the same millisecond and at the same time not allow more than 2 transactions per second.. This is where the challenge comes into picture.

Quota can't help as there is NO support for a timeunit called second and Concurrent rate limit can't help either.

Is it a product enhancement that Google can look at? Every other APIM product out there does it beautifully.

https://docs.mulesoft.com/api-manager/2.x/rate-limit-1.2.0-task

https://developer.ibm.com/apiconnect/2017/07/17/api-level-throttling/

I'm specifically looking at top 3 APIM products and apigee clearly lacks this feature. I don't know if I'm violating the community policy by comparing the features with apigee's competitors. But we need some direction on this as we are not getting any help so far. We have reached out to support, customer success team, etc.

It sounds like you are actually discussing a business requirement and not a technical requirement. If so, chat with your "partners" or product team and determine what that "count" should be per minute. Next, implement a quota policy as that policy tracks requests via a counter. Note: Spike arrest doesn't use a counter.

Also, the spike arrest works a bit more sophisticated (sorry, would be too long to describe) than just smoothing so you may run into other issues there. Can you let us know if requests per minute would work? If so, add a quota, set the identifier to the clientId, allow 120 requests per minute, and enable the distributed element on the policy. If you need exact, set synchronous as well. That should do it.

Again, spike arrest is a technical/security requirement. Quota is a business requirement. What you described is a business requirement. hope this helps?

Is there a way to configure the timeunit of Quota policy as second ? I think this would address the need.