Commit Graph

246 Commits

Author SHA1 Message Date
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
Eric Zhao 87142ce512 Bump version to 1.7.2-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-12-25 11:19:07 +08:00
Eric Zhao 9c909e3631 Bump version to 1.7.1
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-12-24 20:05:23 +08:00
Eric Zhao e9d730cc39 test: Fix unstable test cases in MetricExitCallbackTest
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-12-24 19:54:46 +08:00
fangwentong 0e110c68ea Fix the logic of getting maxSuccessQps in StatisticNode (#1196) 2019-12-20 13:57:53 +08:00
Eric Zhao a63c1841ee Support setting config file path via system env and improve error handling in SentinelConfigLoader
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-12-18 19:00:52 +08:00
Eric Zhao c70565167f
refactor: Get the max allowed RT directly from SentinelConfig.statisticMaxRt() (#1173)
- to avoid the dependency chain: Constants -> SentinelConfig

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-11-21 17:03:10 +08:00
于玉桔 24f8d75601 Fix the incorrect logic of handling the end separator of the log directory in LogBase (#1172) 2019-11-21 13:37:50 +08:00
Eric Zhao 72a58f7ea7 Add Consumer functional interface in sentinel-core utils
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-11-20 13:55:26 +08:00
Eric Zhao 9705f54611 Bump version to 1.7.1-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-11-12 11:08:14 +08:00
Eric Zhao 8cdf1de854 Bump version to 1.7.0
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-11-11 21:12:58 +08:00
Eric Zhao 6bb2de8750 Support classification for Sentinel resources
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-11-06 21:00:08 +08:00
Eric Zhao cf5b955f12 Improve AssertUtil for collection checking
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-11-05 17:51:56 +08:00
Eric Zhao 74a40aa285
Improve Node and Metric interface to support conditional metric retrieval (#1115)
* Add detailsOnCondition method in Metric interface to filter MetricNode within the time condition.
* Add rawMetricsInMin method in Node interface, which will retrieve and generate metric items from the min-level sliding window on condition.
* Add test cases for detailsOnCondition.

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-10-25 16:03:07 +08:00
Eric Zhao b0905547ff Use ServiceLoaderUtil to create SPI ServiceLoader
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-10-23 19:20:53 +08:00
Eric Zhao 8d5654f727 Add ServiceLoaderUtil to improve SPI classloader mechanism and update SpiLoader
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-10-23 19:20:53 +08:00
wangyb dbf1f97dde Fix the cluster rule checking logic in FlowRuleUtil#checkClusterField() (#1105) 2019-10-22 20:28:21 +08:00
Eric Zhao 826447bc82
Fix the bug that resource name displayed in ClusterNode-related command APIs for SphU.entry(method) is incorrect (#1078)
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-10-11 15:15:07 +08:00
windWheel 4e55a6a749 Optimize the slot order in DefaultSlotChainBuilder (#1056) 2019-09-23 09:45:22 +08:00