- Add `UnaryLeapArray` and `RequestLimiter` to enable simple QPS limit
- Improve cluster rule manager and server config manager to support request limiter
- Support `TOO_MANY_REQUEST` status in client side
- Also improve the automatic namespace register of embedded server mode
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Refactor MetricBucket to support add multiple count
- Refactor Node and Metric related classes
- Refactor for StatisticSlot
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
* Fix#330 : fix listMetricFiles() returns wrong file name list.
Signed-off-by: Carpenter Lee <hooleeucas@163.com>
* Add timestamp check when read metrics.
Signed-off-by: Carpenter Lee <hooleeucas@163.com>
* Refine test case
Signed-off-by: Carpenter Lee <hooleeucas@163.com>
- Code refinement for heartbeat component in transport related module
- Add remove support of `SentinelConfig`
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- The constructor now accept `sampleCount` and `windowIntervalMs` so that it can match the two basic properties
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Remove "borrow-from-ref" mode
- Improve flow checker to support both embedded server mode and client mode
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Add a `ClusterTransportClient` for transport abstraction of Sentinel cluster
- Add universal request/response interface and common ClusterRequest/ClusterResponse abstraction
- Add common request/response data entity
- Add basic abstraction of codec (EntityWriter and EntityDecoder)
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Update ParamFlowRule to support cluster mode
- Add `ParamFlowClusterConfig` to provide cluster mode items for the rule
- Update ParamFlowChecker to support cluster flow mode
- Extract ParamFlowRuleUtil class
- Change type of `flowId` from Integer to Long
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Add new field `clusterMode` and `clusterConfig` for cluster mode
- Add a `ClusterFlowConfig` class for specific items for cluster flow control
- Update FlowRuleChecker to support cluster mode
- Extract valid rule checking and rule map generating logic to FlowRuleUtil
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Add a universal `TokenService` SPI interface for both local flow control and distributed flow control
- Add TokenResult entity to represents result of acquiring token
- Add `ClusterTokenClient` as the SPI interface for client of Sentinel cluster flow control
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Update ParamFlowRule to support cluster mode
- Add `ParamFlowClusterConfig` to provide cluster mode items for the rule
- Update ParamFlowChecker to support cluster flow mode
- Extract ParamFlowRuleUtil class
- Change type of `flowId` from Integer to Long
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Add new field `clusterMode` and `clusterConfig` for cluster mode
- Add a `ClusterFlowConfig` class for specific items for cluster flow control
- Update FlowRuleChecker to support cluster mode
- Extract valid rule checking and rule map generating logic to FlowRuleUtil
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Add a universal `TokenService` SPI interface for both local flow control and distributed flow control
- Add TokenResult entity to represents result of acquiring token
- Add `ClusterTokenClient` as the SPI interface for client of Sentinel cluster flow control
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Enhance rule checking in rule managers and Sentinel Dashboard frontend
- Enhance error information when reporting invalid fields in rule dialog
Signed-off-by: Eric Zhao <sczyh16@gmail.com>