Hello Team,
Do you have any answer?
Please let me know if I should create a case to ask those questions.
Thanks,
MARUBUN
Hello Team,
- Product: CA API Gateway 11.0
- System structure: 3 nodes per cluster x 1 cluster per server x 1 servers
- Usage of assertions:
Apply Rate Limit assertion
o Maximum requests per second: 999
o Cluster wide: OFF
o Spread limit over 1 sec window: ON
o Limit each: Custom - 4 numeric characters (e.g. 9999)
o When limit exceeded: Throttle
o Maximum concurrent requests: Limited to 750, Cluster wide OFF
Query Rate Limit assertion
o Existing Counter Name: the above 4 numeric characters
o Variable Prefix: Count
Compare Expression assertion
o Evaluation: ${Count.counter.concurrency} > 0
o Data Type: Integer
- Issue:
When those three assertions are called sequentially on a request from a client, the evaluation of Compare Expression assertion fails in very rare cases (${Count.counter.concurrency} == 0). The evaluation never fails last three years in the actual operation system.
- Qestion:
Q1. Why does the evaluation fail?
Do you have any idea to succeed the evaluation always in the sequencial call?
Does the following timing control property cause that failure?
- ratelimit.clusterStatusInterval: a node is considered “up” if it has posted its status within the past 8 seconds
- ratelimit.clusterPollInterval cluster property: Apply Rate Limit Assertion checks the status of cluster nodes every 43 seconds
Q2. Is any wrong usage for those assertions?
For example, 'Limit each/Custom' and 'Existing Counter Name' fields.
Regards,
MARUBUN