All Versions
12
Latest Version
Avg Release Cycle
50 days
Latest Release
1342 days ago

Changelog History
Page 1

  • v1.8.0 Changes

    August 21, 2020

    🚀 This nouveau release ships with countless features and improvements, specifically for circuit breaking. We've made progress on refactoring and improving circuit breaking feature, including arbitrary statistic duration support, half-open recovery, enhanced slow request ratio strategy, state change observer and more. We've also brought various versatile integrations including Java EE (JAX-RS and CDI), Quarkus and HTTP client (Apache HttpClient and OkHttp), which could cover more developers.

    🔋 Features / Enhancements

    • 🔨 Refactor degrade hierarchy with new circuit breaker mechanism and improve strategy (support arbitrary statistic duration, support half-open recovery, add slow request ratio strategy) (#1490, #1645)
    • 👌 Support setting project.name via the properties file and deprecate legacy config path (#1412, #1437)
    • 💅 Refactor the mechanism of recording exception (on completed) and polish Tracer (#1420)
    • 👌 Support setting class-level defaultFallback for annotation extension (#1493)
    • ➕ Add JAX-RS integration module (#1396)
    • ➕ Add annotation extension for Java EE CDI (#1541)
    • ➕ Add Sentinel annotation and JAX-RS plugins for Quarkus (#1542)
    • ➕ Add Apache HttpClient integration module (#1455)
    • ➕ Add OkHttp integration module (#1456)
    • ➕ Add Eureka data-source extension (#1502)
    • ➕ Add exceptionPredicate in Tracer for customized exception filtering logic (#1496)
    • 👌 Improve purge mechanism for deprecated ParameterMetric (#1372)
    • 👌 Support customized origin parser in Dubbo 2.6.x/2.7.x adapter and polish config mechanism (#1555, #1572, #1617)
    • ➕ Add support for extracting parameter value from complex object (#1491)
    • ➕ Add extended interface for metric extension hook to support distinguishing traffic type (#1665)
    • 👌 Improve default fallback for Apache Dubbo 2.7.x adapter (#1680)
    • ➕ Add per-Entry exit handler (whenTerminate) support (#1645)
    • ⚡️ Optimize the order of slots in ProcessorSlot SPI config (#1649)

    🐛 Bug fixes

    • 🛠 Fix sentinel-apache-dubbo-adapter full GC bug (#1431)
    • 🛠 Fix the bug that may cause ErrorEntryFreeException when forwarding requests in sentinel-spring-webmvc-adapter (#1533, #1681)
    • 🛠 Fix the bug of extracting request cookie in Spring Cloud Gateway adapter (#1400)
    • 🛠 Fix the bug of misplaced locks in ContextUtil and ClusterNode (#1429)

    Dashboard

    • 🔨 Refactor degrade frontend/controller and adapt to new circuit breaking features
    • 🛠 Fix the bug that cookie may have conflict with web applications under the same domain (#1443)
    • 🛠 Fix historical version compatibility problem for auth checking via localStorage (#1473)

    Dependencies

    • ⬆️ Upgrade fastjson to 1.2.71, nacos-client to 1.3.0 (in sentinel-datasource-nacos module)

    Thanks for all contributors: @Billzaifei, @cdfive, @chenzhiguo, @CodingSinger, @DogBaoBao, @jasonjoo2010, @J-Cod3r, @JiangZian, @John-Chan, @joooohnli, @linlinisme, @liqiangz, @pleasecheckhere2016, @PeineLiang, @RGaius, @sczyh30, @seasidesky, @wavesZh, @xiby, @Yanghf123, @yunfeiyanggzq, @zhaoyuguang, @zhenxianyimeng

  • v1.7.2 Changes

    April 08, 2020

    🏗 In this version, we've brought breaking changes about the slot SPI mechanism. The slot chain builder SPI has been deprecated (legacy classes were reserved for compatibility). Now Sentinel will take ProcessorSlot itself as SPI. Note that the slot might be stateful, so Sentinel will still build different new slot chains for each resource.

    👀 Furthermore, a new Logger SPI mechanism is introduced for flexible logging extension. The default RecordLog implementation is still based on java.util.logging, and developers could introduce dependencies of logging integration module to adapt to existing logging libraries (e.g. slf4j). See here for more details.

    🔋 Features / Enhancements

    • ➕ Add SOFARPC adapter module (#1307)
    • ➕ Add Zuul 2.x gateway adapter module (#1138)
    • 🔨 Refactor: Make ProcessorSlot itself as SPI and deprecate legacy slot chain builder (#411)
    • ➕ Add new Logger SPI to support flexible logging extension mechanism and add general JUL adapter for Logger SPI (#1307, #1338)
    • 💅 Polish placeholders in logging content to slf4j convention (#1342)
    • ➕ Add slf4j logging extension (#1344)
    • ➕ Add "web-context-unify" config in Spring WebMVC adapter to support "chain" relation flow strategy (#1328)
    • 👌 Improve Dubbo 2.7.5 compatibility problem in sentinel-apache-dubbo-adapter (#1296)
    • 👮 Force modifyRule command handler to fail if an incompatible old fastjson found (#1377)
    • 👍 Calculate both process and system CPU usage to support single process running in container environment (#1204)
    • 👌 Improve the logs when the heartbeat response indicates failure (#1303)

    🐛 Bug fixes

    • 🛠 Fix NPE bug in Tracer when context size exceeds the limit (#1293)
    • 🛠 Fix the parsing issue in large post request for sentinel-transport-simple-http (#1255)
    • 🛠 Fix the bug that context was not released when blocked in Spring Web adapter (#1353)
    • 🛠 Fix timezone problem of sentinel-block.log
    • 🛠 Fix incorrect name resolving cache issue in sentinel-transport-simple-http (resolved in #926 more details in #1583)

    Dashboard

    • 👌 Improve the compatibility on the Content-Type header of POST request (#1260)
    • ✨ Enhance reliability and performance of InMemoryMetricsRepository (#1319)
    • 👌 Support setting value pattern for client IP and host in gateway flow rule dialog (#1325)
    • Hide advanced options in flow rule dialog when cluster mode is selected (#1367)
    • 🛠 Fix NoNodeException problem of FlowRuleZookeeperProvider sample (#1352)

    Thanks for the contributors: @cdfive, @echooymxq, @jasonjoo2010, @jy2156121, @linlinisme, @mantuliu, @olof-nord, @sczyh30, @tianhaowhu, @wavesZh, @WongTheo, @xue8, @zhaoyuguang

  • v1.7.1 Changes

    December 25, 2019

    🔋 Features / Enhancements

    • ➕ Add Sentinel Spring Web MVC adapter module (#1104)
    • 👌 Improve async invocation support for Dubbo 2.7.2+ in sentinel-apache-dubbo-adapter (#1124)
    • 👌 Support configuration for the heartbeat API path in transport module (#515)
    • 🔨 Refactor: Get the max allowed RT directly from SentinelConfig.statisticMaxRt() to avoid implicit dependency chain (#1173)
    • 👌 Support setting config file path via system environment and improve error handling in SentinelConfigLoader

    🐛 Bug fixes

    • 🛠 Fix the incorrect logic of handling the end separator of the log directory in LogBase (#1172)
    • 🛠 Fix Content-Type matching bug in sentinel-transport-simple-http module (#1207)
    • 🛠 Fix the incorrect logic of getting maxSuccessQps in StatisticNode (#1196)

    Dashboard

    • 👌 Improve the ACL checking mechanism and add @AuthAction annotation support (#1042)
    • 🔄 Change the charset of UrlEncodedFormEntity to UTF-8 in SentinelApiClient to support non-ASCII characters (#1207)

    Thanks for the contributors: @agensi, @CodingSinger, @fangwentong, @hongjiev, @kaizi2009, @lkxiaolou, @nick-tan, @zhaoyuguang, @zhenxianyimeng

  • v1.7.0 Changes

    November 12, 2019

    👀 In this version, Sentinel provides an Envoy Global RLS implementation using Sentinel token server, so that Envoy service mesh could leverage the distributed flow control capability of Sentinel. See here for details.

    👀 Since 1.7.0, Sentinel supports configuration via arbitrary properties files. We could set the path of the properties file with the -Dcsp.sentinel.config.file property item. See here for more details.

    🔋 Features / Enhancements

    • ➕ Add Sentinel Envoy RLS token server implementation (#1139)
    • 👌 Support arbitrary configuration properties file path for Sentinel (#804)
    • 👌 Improve the SPI ClassLoader mechanism to handle more complex scenarios (#1088)
    • ➕ Add support for resource classification and polish adapters (#1142)
    • 👌 Support customized block page HTTP status in sentinel-web-servlet-adapter (#1112)
    • 🔧 Make rtSlowRequestAmount and minRequestAmount in DegradeRule configurable (#789)
    • 🔧 Make maxParamByteSize configurable in ParamFlowRequestDataWriter of cluster client module and fix bugs (#823)
    • 👌 Improve Node and Metric interface to support conditional metric retrieval (#1115)
    • 👌 Support adding prefix to Dubbo service resource name in Sentinel Dubbo Adapter (#859)
    • 👌 Improve annotation aspect to support throwing original exception in fallback and blockHandler (#986)
    • ➕ Add Etcd DataSource extension (#1018)
    • ➕ Add Consul DataSource integration module (#979)
    • ➕ Add Spring Cloud Config data source extension (#899)
    • 👌 Improve the checking logic of SystemRule and enhance SystemRuleManager (#1050)
    • 👌 Support registering writable data-source for GatewayFlowRule and customized ApiDefinition (#1057)
    • ➕ Add init parameter to support unifying web context name in Sentinel Web CommonFilter (#1111)
    • 👌 Support URL exclusion using UrlCleaner in Spring WebFlux adapter (#1049)
    • Reuse connections of the same address in ZooKeeper data-source (#788)
    • ⚡️ Dependency update: fastjson to 1.2.62, nacos-client to 1.1.4, apollo-client to 1.5.0

    🐛 Bug fixes

    • 🛠 Fix the bug that resource name displayed in ClusterNode-related command APIs for SphU.entry(method) is incorrect (#1078)
    • 🛠 Fix hookOnCancel handing logic in SentinelReactorSubscriber (#1089)
    • 🛠 Fix the bug of getting the wrong current flow QPS in ClusterFlowChecker (#972)
    • 🛠 Fix the numeric overflow bug of ping response data in the cluster module (#844)
    • 🛠 Fix the bug of wrong RT and exception tracing in sentinel-grpc-adapter (#291 and #995)
    • 🛠 Fix the bug that the Zuul adapter does not exit the entry with parameters (#1148)

    Dashboard

    • ➕ Add version info in the left top of dashboard (#1015)
    • 👌 Support configuration for disabling login (#1004)

    Thanks for the contributors: @aq0706, @ballenwen, @cat-coco, @chenledong, @CodingSinger, @complone, @cookiejoo, @fangjian0423, @HaojunRen, @huangxfchn, @lhl4546, @linlinisme, @lkxiaolou, @wangybgit, @wavesZh, @ycx627954927, @zhangyide, @zhaoyuguang, @0704681032

  • v1.6.3 Changes

    July 30, 2019

    👍 This version provides entire support for managing API gateway flow rules and customized API groups in Sentinel dashboard.

    🔋 Features / Enhancements

    • ➕ Add support for managing gateway flow rules and customized API group in Sentinel dashboard (#869)
    • ➕ Add support for excluding some URLs in Web Servlet CommonFilter (#914)
    • ➕ Add Ordered interface support for Spring Cloud Gateway filter (#937)
    • 👌 Support displaying SystemRule of CPU usage strategy in the dashboard (#927)
    • 🌐 Use the unified context name in Web Servlet filter (#944)

    🐛 Bug fixes

    • 🛠 Fix the empty value matching problem in GatewayParamParser (#937)

    Thanks for the contributors: @cdfive, @Crazy10552, @jasonjoo2010, @linlinisme, @lym-ifae

  • v1.6.2 Changes

    June 19, 2019

    🔋 Features / Enhancements

    • ➕ Add support for request item pattern matching in API gateway flow control (#842)
    • 👌 Support parsing cookie as request items in API gateway flow control (#814)
    • ➕ Add support for logging into console for common logs (#836)

    🐛 Bug fixes

    • 🛠 Fix the parsing bug for command name that contains multiple slash in sentinel-transport-netty-http module (#817)
    • 🛠 Fix the bug that numeric overflow might occur when refilling tokens in ParamFlowChecker (#838)

    Dashboard

    • 👌 Improve the edit dialog for FlowRule and ParamFlowRule (#845)
    • ⚡️ Update frontend dependencies in package.json to fix vulnerabilities
  • v1.6.1 Changes

    May 23, 2019

    🔋 Features / Enhancements

    • 🔨 Refactor API gateway common module to separate converted rules from other rule managers (#758)
    • Separate parameter metric storage from ParamFlowSlot and improve ParamFlowRuleUtil
    • 🔨 Refactor FlowRuleChecker to improve code reuse
    • ➕ Add SPI extension for Sentinel internal statistics (#730)
    • ➕ Add exceptionsToTrace and exceptionsToIgnore support in Tracer (#766)
    • 👉 Make SentinelConfig.loadProps() thread-safe using CopyOnWriteArraySet (#706)
    • ➕ Add CPU usage and system load to metric collecting command API (#749)
    • ➕ Add getCpuUsageThreshold() method in SystemRuleManager (#770)

    🐛 Bug fixes

    • 🛠 Fix the bug that parameters are not carried when exiting entries in SentinelReactorSubscriber
    • 🛠 Fix the bug that Chinese characters are malformed in response body of ZuulBlockFallbackProvider (#737)

    Dashboard

    • ➕ Add ZooKeeper flow rule dynamic publisher sample (#714)

    Thanks for the contributors: @haofangyuan, @jasonjoo2010, @kexianjun, @threedr3am, @yikangfeng, @yinjihuan

  • v1.6.0 Changes

    April 25, 2019

    💥 Breaking Changes

    🔨 In 1.6.0, we refactored the statistic and flow control algorithm of parameter flow control. The old mechanism (LRU map + sliding window for the parameter) has been replaced by an algorithm like token bucket. Now parameter flow rule supports setting statistic interval (intervalSec), burst count (burst), traffic shaping mode (controlBehavior, currently supports default mode and throttling mode).

    🔨 We've refactored and improved fallback support for @SentinelResource annotation to make it more understandable and common. See the document for more information.

    Since 1.6.0, all API gateway adapter will be based on the sentinel-api-gateway-adapter-common module. There are some changes for Sentinel Zuul Adapter. In previous versions, the adapter will mark all serviceId and API path as resources. Since 1.6.0, the adapter will regard all route ID (aka. proxy) and customized API groups (defined in API gateway common module) as resources.

    🔋 Features / Enhancements

    • 🔨 Refactor rule, statistic and flow checking implementation for parameter flow control and support throttling traffic shaping mode (#677)
    • ➕ Add sentinel-api-gateway-adapter-common module for universal gateway rule and API definition management
    • ➕ Add Sentinel Spring Cloud Gateway adapter module and implementation (#695)
    • 🔨 Refactor and improve Sentinel Zuul Adapter (#698)
    • 🔨 Refactor and improve fallback support for @SentinelResource annotation (#693)
    • 👌 Support passing acquireCount and parameters to entry via SentinelReactorSubscriber in Sentinel Reactor Adapter (#630)
    • 👌 Support parsing HTTP POST request in sentinel-transport-netty-http and sentinel-transport-simple-http (#620)
    • ➕ Add FileInJarReadableDataSource to support reading config file in jar (#646)
    • ➕ Add @SpiOrder annotation and improve SPI loader to support loading SPI with highest precedence
    • 0️⃣ Make CommandCenterProvider and HeartBeatSenderProvider choose the instance with highest precedence by default (#675)
    • ➕ Add exceptionsToIgnore configuration support in @SentinelResource annotation (#683)
    • ➕ Add appType property field in SentinelConfig (#696)

    🐛 Bug fixes

    • 🛠 Fix the NPE bug when passing null args to SphU.entry() and paramIdx is negative (#642)

    Dashboard

    • ➕ Add a simple login page to support basic auth in Sentinel dashboard (#659)
    • ⚡️ Refinement and support HTTP POST request for update operations in SentinelApiClient (#620)
    • 🛠 Fix CountDownLatch wait timeout in MetricFetcher when machine is dead (#645)

    Thanks for the contributors: @cdfive, @dqing0, @jasonjoo2010, @luoxn28, @paulkennethkent, @shxz130, @yikangfeng, @zhaixiaoxiang

  • v1.5.2

    April 17, 2019
  • v1.5.1 Changes

    March 27, 2019

    🛠 This version provides some bug fixes and enhancements.

    🔋 Features / Enhancements

    • ➕ Add exceptionsToTrace configuration support in @SentinelResource annotation (#543)
    • ✨ Enhancements for handling Error in InitExecutor and LogBase (#613)
    • 👌 Improve ZookeeperDataSource to deal with bad connection when initializing (#597)
    • ➕ Add compatible adapter module sentinel-apache-dubbo-adapter for Apache Dubbo 2.7.x and above (#619)
    • 🔌 Apply Alibaba p3c pmd plugin/rules and fix/ignore all violations of priority 1 (#574)
    • 👌 Improve field naming in ApolloDataSource (#593)

    🐛 Bug fixes

    • 🛠 Fix deadlock bug in Env static initialization (#610)
    • 🛠 Fix bug of exiting entry with parameters in SentinelResourceAspect

    Thanks for the contributors: @blindpirate, @beston123, @cdfive, @lawrencewu, @zhousiliang163