Commit Graph

264 Commits

Author SHA1 Message Date
cdfive 62efb78d4e
Refactor SpiLoader and enhance SPI mechanism (#1383)
* Add `@Spi` annotation as the general annotation for SPI definition.
* Add isDefault in @Spi, add loadDefaultInstance and improve loadFirstInstanceOrDefault method, improve test cases
* Add SpiLoaderException class for thrown when something goes wrong while loading Provider
* Rearrange packages of base SPI mechanism

NOTE: this PR contains breaking changes regarding API.
2021-01-27 09:45:56 +08:00
brothelul a343873c81
Support setting flush interval of the metric log via SentinelConfig property (#1919) 2020-12-31 16:28:44 +08:00
brothelul b2502326cd
doc: Fix incorrect comment in FlowRuleComparator (#1915) 2020-12-18 14:54:54 +08:00
zcai2 6f7d4d09e2
test: Fix potential flaky test cases in TracerTest (#1859) 2020-11-27 09:52:14 +08:00
Lynx 6f2f844726
Fix the problem that requests will never be blocked when slowRatioThreshold = 100% (#1779) 2020-11-05 20:35:09 +08:00
Jason Joo d510eb6cd3
test: Fix overrunning test `FlowRuleManagerTest.testLoadAndGetRules` (#1823)
Signed-off-by: Jason Joo <hblzxsj@163.com>
2020-10-29 14:22:36 +08:00
Weihua c00f946813 Fix potential concurrency issue when updating flow rules (#1783) 2020-10-09 09:54:02 +08:00
nickChenyx cc2d1a69a9
Optimize logging statements using placeholder (#1736)
* Optimize logging statements using placeholder to avoid unnecessary concatenation (issue #1735)
2020-09-17 20:42:01 +08:00
yunfeiyanggzq 473cc84262 Add concurrency token request/release operation in TokenService
Signed-off-by: yunfeiyanggzq <yunfeiyang@buaa.edu.cn>
2020-09-16 11:40:14 +08:00
yunfeiyanggzq 75f138821d Add attributes of cluster concurrency limiting in ClusterFlowConfig
Signed-off-by: yunfeiyanggzq <yunfeiyang@buaa.edu.cn>
2020-09-16 11:38:58 +08:00
M4Y 10aa39f822
doc: Fix typo in code comments (#1721) 2020-09-10 22:59:45 +08:00
mikawudi d5eb5f473f
Pre-calculate intervalInSecond in LeapArray to reduce redundant calculation (#1700) 2020-08-27 19:47:35 +08:00
ZhiQiang Gu b91305a903
Fix typo in CircuitBreakingIntegrationTest (#1688)
Signed-off-by: yunfeiyanggzq <yunfeiyang@buaa.edu.cn>
2020-08-21 15:10:53 +08:00
Eric Zhao e58267012d Bump version to 1.8.1-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-21 14:36:49 +08:00
Eric Zhao d17bf8c7cc Bump version to 1.8.0
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-20 19:47:20 +08:00
Eric Zhao 125996d4d1 Add RuntimeException converting method in BlockException and polish logic for validation
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-20 10:22:07 +08:00
Eric Zhao a88288715a Refactor extended MetricExtension interface (matching events in Sentinel)
- Unify the extended interface as a few event handlers: onPass, onBlocked, onComplete and onError
- Polish related code

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-19 10:23:20 +08:00
Bill Yip 8643dac943
Add extended interface for metric extension hook to support distinguishing traffic type (#1665)
- Add EntryType args to all hook methods
2020-08-18 16:55:30 +08:00
Eric Zhao dae4621e6e Refactor exit handler mechanism of Entry
- Rename: whenComplete -> whenTerminate
- Execute the exit handler directly after the onExit hook of all slots

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-18 16:42:58 +08:00
Eric Zhao 55e038cc33 Polish CircuitBreaker interface and update comments
- Only carry context in tryPass/onComplete method (this might be generic in upcoming versions)

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-18 15:31:35 +08:00
Jason Joo ee2772b513
Fix the bug of circuit breaker half-open state transformation when request is blocked by upcoming rules (#1645)
* Refactor the workflow to fix the bug that circuit breaker may remain half-open state forever when the request is blocked by upcoming rules: revert the state change in exit handler (as a temporary workaround)
* Add exit handler in Entry as a per-invocation hook.
2020-08-18 11:04:48 +08:00
M4Y 10c92e69a2
Optimize the order of slots in ProcessorSlot SPI config (#1649) 2020-08-17 10:38:24 +08:00
Peine c5da3faad9
Polish boolean checking in test cases and dashboard (#1664) 2020-08-12 20:34:22 +08:00
Eric Zhao a18ef7cbfa Remove deprecated passCheck() in Rule and polish interface
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-08-05 10:42:15 +08:00
Eric Zhao 07b811196b Update test cases for circuit breaking
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-07-30 19:00:13 +08:00
Eric Zhao c0c27c86b7 Refactor degrade hierarchy with new circuit breaker mechanism and improve strategy
* Add `CircuitBreaker` abstraction (with half-open state) and add circuit breaker state change event observer support.
* Improve circuit breaking strategy (avg RT → slow request ratio) and make statistics of each rule dependent (to support arbitrary statistic interval).
* Add simple "trial" mechanism (aka. half-open).
* Refactor mechanism of metric recording and state change handling for circuit breakers: record RT and error when requests have completed (i.e. `onExit`, based on #1420).

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-07-30 19:00:13 +08:00
ZhiQiang Gu bd29e046e1
Add unit test for logging/TokenBucket (#1504)
Signed-off-by: yunfeiyanggzq <yunfeiyang@buaa.edu.cn>
2020-05-29 15:57:38 +08:00
于玉桔 6b86721b36
Support setting class-level defaultFallback for annotation extension (#1493) 2020-05-29 13:49:00 +08:00
ZhiQiang Gu 2e64d33085
test: Add test cases for Tuple2 (#1501)
Signed-off-by: yunfeiyanggzq <yunfeiyang@buaa.edu.cn>
2020-05-25 13:44:54 +08:00
pleasecheckhere2016 5523fd0d42
Add exceptionPredicate in Tracer for customized exception filtering logic (#1496) 2020-05-21 15:17:19 +08:00
Eric Zhao 99d4355318 Polish code comments of the fundamental Sph/SphO/SphU class
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-05-11 17:45:48 +08:00
Eric Zhao 516e36fd83 Polish Tracer with entry.setError(ex) mechanism
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-04-28 10:11:17 +08:00
Eric Zhao 7f3165740a Refactor the mechanism of recording error in Entry and StatisticSlot
* Also polish related complete callbacks

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-04-28 10:11:17 +08:00
Eric Zhao 7f0771df5c
Update resolving logic of project name and polish SentinelConfig (#1437)
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-04-27 15:05:03 +08:00
Lin.Liang b716bed370
Support setting project.name via the properties file and deprecate legacy config path (#1412) 2020-04-26 21:06:32 +08:00
johnli 5e9cfb0deb
fix: Tracer does not trace exception to DefaultNode (#1068) 2020-04-26 20:48:39 +08:00
haifeng 04a1d065dd
Fix the bug of misplaced locks in ContextUtil and ClusterNode (#1429)
- which may lead to IllegalMonitorStateException in unlock() when unchecked error occurs during lock()
2020-04-26 10:58:27 +08:00
Eric Zhao a0196b6b00 Bump version to 1.8.0-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-04-13 20:19:22 +08:00
Eric Zhao 6a7ec708bc Bump version to 1.7.2
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-04-08 09:42:02 +08:00
cdfive e1435974c6
Set default log level of JDK logging to INFO and polish code of SpiLoader (#1365)
* Improve log info in SpiLoader, improve comment and test case
* Use error level in catch block, init ArrayList with capacity and improve add item to list
2020-04-03 15:46:25 +08:00
Jason Joo 49e60a3e51
Force modifyRule command handler to fail if an incompatible old fastjson found (#1377)
* Note that this is only a temporary solution.
2020-04-03 15:32:42 +08:00
cdfive be4d058bf8
refactor: Make the ProcessorSlot itself as SPI and deprecate legacy slot chain builder (#411)
* Make slots loaded by SPI, mark all slots with @SpiOrder from -10000 to -1000, improve comment
* Reserve gateway and param slot chain builder (just extends DefaultSlotChainBuilder) and mark them as @Deprecated
2020-03-26 12:38:01 +08:00
于玉桔 670b2cb764
Improve standard output message in LogBase (#1357) 2020-03-25 21:17:14 +08:00
Eric Zhao 87f95adc2e Fix timezone problem of sentinel-block.log
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-03-19 14:54:40 +08:00
Eric Zhao eed77cafc2
Polish placeholders in logging content to slf4j convention (#1342)
* Polish placeholders in logging content to "{}"

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-03-17 11:11:54 +08:00
Eric Zhao e4769293dc
Move CommandCenterLog to sentinel-transport-common and polish related code (#1341)
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-03-16 22:30:29 +08:00
Eric Zhao 624d19d4ce
Polish logging SPI related code and add general JUL adapter for Logger SPI (#1338)
* Move the legacy JUL methods from LogBase to BaseJulLogger.
* Add a JavaLoggingAdapter as the general JUL adapter for the Logger SPI, which makes it convenient to use (as the default logger).
* Add LoggerSpiProvider to resolve Logger SPI.
* Polish the logback demo.

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2020-03-16 10:00:46 +08:00
tianhao 6e0d116751 calculate process cpu usage to support application running in container environment 2020-03-06 17:15:22 +08:00
xue8 5f203aa79f
Flexible loggers' support through SPI mechanism with name `com.alibaba.csp.sentinel.log.Logger` (#1265)
* There are two types of logger for command center and common modules specified by  annotation of `LogTarget`
* Add implementing examples in `sentinel-demo/sentinel-demo-log-logback`
* All implementations should support placeholder '{}'
2020-02-21 11:24:00 +08:00
cdfive c1ff9135ee
Fix NPE in Tracer when context size exceeds the limit (#1293) 2020-02-21 09:21:30 +08:00